为什么JavaScript中的0 ==""为真

Hor*_*ter 31 javascript

为什么0 == ""在JavaScript中是真的?我在这里找到了类似的帖子,但为什么数字0类似于空字符串?当然0 === ""是假的.

Šim*_*das 63

0 == ''
Run Code Online (Sandbox Code Playgroud)

左操作数的类型为Number.
右操作数的类型为String.

在这种情况下,右操作数被强制转换为Number类型:

0 == Number('')
Run Code Online (Sandbox Code Playgroud)

结果

0 == 0
Run Code Online (Sandbox Code Playgroud)

抽象等式比较算法(第4号):

如果Type(x)为Number且Type(y)为String,则返回比较结果x == ToNumber(y).

资料来源:http://es5.github.com/#x11.9.3

  • 哦,我不知道es5.github.com.比在PDF中输入页码更方便. (3认同)