1咒程、[] ==[]
false
因?yàn)閿?shù)組是引用類型的鸠天,兩個(gè)數(shù)組的引用不可能相等,所以值為false
2帐姻、'0.00' == 0
true
數(shù)字型字符串與純數(shù)字之間的比較稠集,js會(huì)將字符串轉(zhuǎn)換成數(shù)字再作比較,轉(zhuǎn)換后的結(jié)果是 0.00 == 0
饥瓷,所以值為false剥纷。
3、'0'<1
true
同上呢铆,字符串轉(zhuǎn)換成數(shù)字0 < 1
,所以值為false
4晦鞋、'abc' == 0
false
這里的字符串'abc'不是數(shù)字型字符串,無(wú)法轉(zhuǎn)換成數(shù)字棺克,將這種類型的字符串與數(shù)字做比較時(shí)悠垛,會(huì)先轉(zhuǎn)換成NaN,所以值為false
5娜谊、'11'<'2'
true
兩個(gè)數(shù)字型字符串之間的比較确买,進(jìn)行這種比較時(shí)會(huì)依次取每個(gè)字符轉(zhuǎn)換成ASCII碼進(jìn)行比較,因?yàn)?1'的ASCII碼小于'2'因俐,后面就不用再往下進(jìn)行比較了拇惋。
6、1 == true '1' == true '2' == true
true true false
1為true抹剩,0為false
這是眾所周知的撑帖,所以1 == true的值為true。
在js中澳眷,字符串和布爾值進(jìn)行比較的時(shí)候胡嘿,會(huì)把布爾值轉(zhuǎn)化成數(shù)字類型。所以'1' == true的比較會(huì)轉(zhuǎn)換成'1' == 1钳踊,值也是為true的衷敌。'2' == true的比較會(huì)轉(zhuǎn)換成'2' == 1勿侯,值必然為false。
但是缴罗,!!'2' == true 返回的是true助琐,因?yàn)橛脙蓚€(gè)非符號(hào)!!
可以把非空字符串轉(zhuǎn)換成true。
7面氓、== 與 ===的區(qū)別
在js中兵钮,==表示相等(值相等),===表示恒等(值和類型都要相等)舌界。在用==比較時(shí)如果被比較的兩者類型不同掘譬,會(huì)先做類型轉(zhuǎn)換再判斷值得大小,如果是===類型和值必須都相等呻拌。