if(infos[i][3] === "大一" && infos[i][1] === "女")為什么要三個=號
var infos = [
??? ['小A','女',21,'大一'],
??? ['小B','男',23,'大三'],
?? ?['小C','男',24,'大四'],
?? ?['小C','男',24,'大四'],
?? ?['小D','女',21,'大一'],
?? ?['小E','女',22,'大四'],
?? ?['小F','男',21,'大一'],
?? ?['小G','女',22,'大二'],
?? ?['小H','女',20,'大三'],
?? ?['小I','女',20,'大一'],
?? ?['小J','男',20,'大三']
];
for(var i = 0; i < infos.length; i++) {
?? ?if(infos[i][3] === "大一" && infos[i][1] === "女") {
?? ??? ?document.write(infos[i][0] + "<br />");
?? ?}
}
2016-07-26
"==="叫做嚴(yán)格運算符
嚴(yán)格運算符的運算規(guī)則如下,
(1)不同類型值
如果兩個值的類型不同,直接返回false。
(2)同一類的原始類型值
同一類型的原始類型的值(數(shù)值、字符串、布爾值)比較時,值相同就返回true,值不同就返回false。
(3)同一類的復(fù)合類型值
兩個復(fù)合類型(對象、數(shù)組、函數(shù))的數(shù)據(jù)比較時,不是比較它們的值是否相等,而是比較它們是否指向同一個對象。
(4)undefined和null
undefined 和 null 與自身嚴(yán)格相等。
null === null ?//trueundefined === undefined ?//true
相等運算符在比較相同類型的數(shù)據(jù)時,與嚴(yán)格相等運算符完全一樣。
在比較不同類型的數(shù)據(jù)時,相等運算符會先將數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,然后再用嚴(yán)格相等運算符比較。類型轉(zhuǎn)換規(guī)則如下:
(1)原始類型的值
原始類型的數(shù)據(jù)會轉(zhuǎn)換成數(shù)值類型再進(jìn)行比較。字符串和布爾值都會轉(zhuǎn)換成數(shù)值,所以題主的問題中會有第二個string輸出。
(2)對象與原始類型值比較
對象(這里指廣義的對象,包括數(shù)值和函數(shù))與原始類型的值比較時,對象轉(zhuǎn)化成原始類型的值,再進(jìn)行比較。
(3)undefined和null
undefined和null與其他類型的值比較時,結(jié)果都為false,它們互相比較時結(jié)果為true。
2016-07-29
===最簡單來說就是全等于
2016-07-26
==是轉(zhuǎn)化為同一類型之后進(jìn)行值的比較,===除了值的比較之外還要進(jìn)行類型的比較
參考資料?http://www.cnblogs.com/yiki/archive/2012/05/08/2489687.html