js中boolean类型的相关比较

console.log(([])?true:false); //true
console.log(([]==false?true:false)); //true
console.log(({}==false)?true:false) //false

原因:
布尔类型与其它任何类型进行比较,布尔类型将会转换为number类型。
Number([])返回0所以第二题为true

Number转换类型的参数如果为对象返回的就是NaN,
那么Number({})返回的就是NaN。
通过Object.prototype.toString.call({})来判断类型,0与NaN相比为false

猜你喜欢

转载自blog.csdn.net/llr_h5/article/details/75570922