关于JavaScript中0、空字符串、'0'是true还是false的总结

本文深入探讨了JavaScript中不同类型的变量进行比较时的内部机制,包括布尔类型、字符串和数字之间的隐式转换规则,以及这些规则如何影响条件判断的真值。

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

最近遇到了关于 空字符串、0、'0' 和 false 做判断的语法问题:在Chrome 的 console面板中输入代码如下:

 1.  false == 0 输出true;因为在做判断的时候,两者中有boolean(布尔类型),会把boolean先转化为number(数字类型),false为0,true是1。也就是等价于判断 0 == 0 ,结果为true。

2.  ‘’ ==  false 输出为true;js中空字符串与0相等,也就意味着空字符串等等于false。

3.  ‘0’ == false 正确输出为true;这里犯了一个错误认为结果会是false,我想的是空字符串等于false,非空字符串等于true,true和false肯定是不等的啊!但是,可但是.......忽略了一个js规则:string(字符串类型)和number作比较的时候,string会先转化成number。此时字符串0转化为了数字0,即: 0 == 0;结果应该为true。

4. Boolean(‘0’) 正确输出为true;string转化成Boolean类型,空字符串为false,别的字符串全是true。

总结:

1.两者做判断时,若有布尔类型,会先把boolean转换成number,即0 (false) 和 1 (true);

2.字符串string直接转换成Boolean类型时,除了空字符串为false外,其余都是true;

3.字符串string和number类型做比较的时候,string会转化成number。

.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值