题目
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 题目