題目
1、console.log([]==[]); 2、console.log(![]==[]); 3、console.log(![]==![]); 4、 console.log(![]==false); 5、console.log([]==true); 6、console.log([]=="");7、console.log(0==![]); 8、console.log(0==[]);
1、 console.log([]==[]);
解釋:數組也是對象,兩個數組引用地址不同,所以結果為false
2、console.log(![]==[]);
解釋:!運算符優先級比==高------->先求![] !會將後面的數組強轉換為布爾類型 數組為對象類型------>所以空數組轉換為布爾類型也為true------> ![]為false. 如果數組前無!,默認轉換為"",------->後者[]為"". 題目轉換為false=="" ,結果為true
3、console.log(![]==![]);
解釋: !會將後面的數組強轉換為布爾類型------>左右皆轉換為false,false==false,結果為true.
4、 console.log(![]==false);
解釋: !會將後面的數組強轉換為布爾類型------>左邊轉換為false,false==false,結果為true.
5、console.log([]==true);
解釋:[]默認轉換為"",題目轉換為""==true,結果為false。(空字符串轉換為布爾值為false)
6、console.log([]=="");
解釋: []默認轉換為"",題目轉換為""=="",結果為true。
7、console.log(0==![]);
解釋:0轉換為布爾值為false,後者將數組強轉為布爾型,![]為false,題目轉換為false==false,結果為true.
8、console.log(0==[]);
解釋: 0轉換為布爾值為false,後者數組默認轉換為"",空字符串轉換為布爾值為false,題目轉換為false==false,結果為true.
注:"", 0 , false, undefined, null, NaN 轉換為布爾值都會變成false

閱讀更多 栗子紀 的文章
關鍵字: 數組 JavaScript 題目