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 数组经典布尔类型判断问题


分享到:


相關文章: