js中有趣的隐式转化结构

最近在学习js的时候发现了一个有意思的地方,是一个很好的例子,特此记录一下。

var  arr = []

console.log(arr == !arr)    //输出为true

在这里比较两个时,经过了隐式转化arr数组先是转化为了字符串‘’,‘’有转化成了布尔类型false.

!arr因为前面添加了一个!,所以arr直接转化成了布尔类型,而在直接转化成布尔类型中,除了undefined,null,0,'',NaN转化为false外,其余会全部转化为true,所以这里arr直接转化为了true,!arr就为false.

因arr为false,!arr也为false

所以arr == !arr 结果为true 

猜你喜欢

转载自www.cnblogs.com/xianrenjia/p/13369517.html