前两天看到这道笔试题当时做错了,我的答案是true false false(大家可以想下自己的答案)然后仔细查阅了一下资料发现js的类型转换确实还是挺多小坑的,下面是我整理的资料,相信看完这道题也就迎刃而解了:
第一题:[]会转换成为一个布尔值,根据前面说的所有的对象都转换为true,则第一题返回true
第二题:首先[]会转换为原始值,首先调用valueOf()返回数组本身,然后调用toString()返回空字符串,空字符串再转换为0,而false则根据==的隐士转换规则转换为0,所以返回true
第三题:首先{}会转换为原始值,首先调用valueOf()返回对象本身,然后调用toString()返回“[object object]”转换成数字为NaN,而false转换为数字为0,所以返回false.