代码很简单,先看这段
'0' == false; // true
0 == false; // true
再来看这段
'0' && console.log('打印出来了~'); // output:打印出来了~
0 && console.log('打印出来了~'); // output:undefined
按道理说,都等同于false
,那么为何字符串:'0
'的情况下能打印数据呢?
代码很简单,先看这段
'0' == false; // true
0 == false; // true
再来看这段
'0' && console.log('打印出来了~'); // output:打印出来了~
0 && console.log('打印出来了~'); // output:undefined
按道理说,都等同于false
,那么为何字符串:'0
'的情况下能打印数据呢?
13 回答13.1k 阅读
7 回答2.2k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.2k 阅读
试一下把值 explicit 地转换为
Boolean
,我们可以发现以下的结果:由此可知,题主贴出的第二段代码是完全可以解释的。至于为什么会有这样的转换结果,参见标准第 9.2 节 对
String
到Boolean
的转换的规定:那么机智的题主要问了,第一段代码为何会说
'0' == false
为true
呢?这就要参考标准 11.9.3.7 对
==
的规定(此处 x 指代==
左侧,y 指代右侧):