javaScript 數組經典布爾類型判斷問題

題目

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 數組經典布爾類型判斷問題


分享到:


相關文章: