代码很简单,先看这段
'0' == false; // true
0 == false; // true
再来看这段
'0' && console.log('打印出来了~'); // output:打印出来了~
0 && console.log('打印出来了~'); // output:undefined
按道理说,都等同于false,那么为何字符串:'0'的情况下能打印数据呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
试一下把值 explicit 地转换为
Boolean,我们可以发现以下的结果:由此可知,题主贴出的第二段代码是完全可以解释的。至于为什么会有这样的转换结果,参见标准第 9.2 节 对
String到Boolean的转换的规定:那么机智的题主要问了,第一段代码为何会说
'0' == false为true呢?这就要参考标准 11.9.3.7 对
==的规定(此处 x 指代==左侧,y 指代右侧):