true 和 false也能相等

本文深入探讨了空数组在布尔转换中为何成为'真',并揭示了这一现象背后的原理,通过代码实例展示了空数组与布尔值'假'进行比较时为何得出'真'的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**

以下让大家看到一个true和false相等的问题研究

*/

//先看第一个东西

var b = Boolean([]);
console.log(b);
console.log([])

//得到的结果是true,足以说明空数组在进行布尔转化时会转化为true

//那么自然可以得到结论![]应该是false,验证一下

console.log(![])//确实是false

//接下来看下面的东西,诡异的结果出现了

console.log([] == ![]);// 输出结果为true;

/*
是不是无法理解上面的结果,一个true的东西和一个为false的比较居然是相等的。
*/

 现在开始来解释原因

 

[] == ![]比较的步骤如下:

首先![]进行运算,那么结果是0

等于说就变成了[] == false的判断

 

然后你要是查看犀牛书上面的关于==号的比较的解释

会发现,对象和数字比较的方式

会把对象进行toString()转化然后再比较

那么[].toString() 就是""

 

"" == false

这种比较大家就熟悉了

返回就是true

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值