为什么+;[]或+&引用&引用;在javascript中等于0
我知道在javascript中,为什么+;[]或+&引用&引用;在javascript中等于0,javascript,Javascript,我知道在javascript中,Array不支持+操作,因此+[]将被转换为+[].toString(),但我不明白为什么+'等于零。因为空字符串(“”)在javascript中是false(因为Javascript是ECMAScript的一种方言,ECMAScript语言规范明确定义了这种行为)和+一元运算符将false转换为0 Reference:我认为这是一个一元运算符。它会转换为零,因为ECMAScript规范中有一条特定规则,要求在执行数字转换时以这种方式转换空字符串。@evoluti
Array
不支持+
操作,因此+[]
将被转换为+[].toString()
,但我不明白为什么+'
等于零。因为空字符串(“”)
在javascript中是false
(因为Javascript是ECMAScript的一种方言,ECMAScript语言规范明确定义了这种行为)和+
一元运算符将false
转换为0
Reference:我认为这是一个一元运算符。它会转换为零,因为ECMAScript规范中有一条特定规则,要求在执行数字转换时以这种方式转换空字符串。@evolutionxbox
+[]
等于+[].toString()
@斜视啊。这是一个有意义的问题:。对这个问题的严厉回答令人惊讶……特别是考虑到它所产生的启发性评论。@evolutionxbox现在检查。。这不是因为空字符串是假的(我想你的意思是“假”)。还有其他不转换为零的假值。“
是假值(不是严格的假值),所以强制布尔值首先出现,然后布尔值才是数字。@斜视所有假值、0、空字符串“”和“”、NaN、未定义和null始终计算为假值;其他所有值都为真。@void:它们是“假值”,而不是false
,这是一个不同的值,但这与它如何转换为数字没有任何关系。如果它们总是被计算为false
,那么“==null
将是true
。