1.代码输出题: var x = [0]; if([0]){ console.log(x==true); }else{ console.log("false");; } 考点:隐式转换 解析:此题涉及两次隐式转换,第一次是在if中默认使用Boolean转换,第二次是在==时发生了双 等的隐式转换。首先明确Boolean的转换规则:①字符串时除空字符串以外其他都转换为true②数字 类型时除0其他都转换为true③对象时除了null其他都转换为true④undefined转换为false。故程序 会进入第一个if条件中,而后发生了==的隐式转换。转换规则以下:①若是一个运算数是 Boolean 值,在检查相等性以前,把它转换成数字值。false 转换成 0,true 为 1。②若是一个运算数是对 象,另外一个是数字,在检查相等性以前,要尝试把对象转换成数字。故按照如上规则会先true 转换为1,而后会将[0]转换成0,故二者不相等返回false