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
"==="叫做嚴格運算符
嚴格運算符的運算規則如下,
(1)不同類型值
如果兩個值的類型不同,直接返回false。
(2)同一類的原始類型值
同一類型的原始類型的值(數值、字符串、布爾值)比較時,值相同就返回true,值不同就返回false。
(3)同一類的復合類型值
兩個復合類型(對象、數組、函數)的數據比較時,不是比較它們的值是否相等,而是比較它們是否指向同一個對象。
(4)undefined和null
undefined 和 null 與自身嚴格相等。
null === null ?//trueundefined === undefined ?//true
相等運算符在比較相同類型的數據時,與嚴格相等運算符完全一樣。
在比較不同類型的數據時,相等運算符會先將數據進行類型轉換,然后再用嚴格相等運算符比較。類型轉換規則如下:
(1)原始類型的值
原始類型的數據會轉換成數值類型再進行比較。字符串和布爾值都會轉換成數值,所以題主的問題中會有第二個string輸出。
(2)對象與原始類型值比較
對象(這里指廣義的對象,包括數值和函數)與原始類型的值比較時,對象轉化成原始類型的值,再進行比較。
(3)undefined和null
undefined和null與其他類型的值比較時,結果都為false,它們互相比較時結果為true。
2016-07-29
===最簡單來說就是全等于
2016-07-26
==是轉化為同一類型之后進行值的比較,===除了值的比較之外還要進行類型的比較
參考資料?http://www.cnblogs.com/yiki/archive/2012/05/08/2489687.html