为什么0=="&引用;在JavaScript中为true

为什么0=="&引用;在JavaScript中为true,javascript,Javascript,为什么在JavaScript中0==“为真?我找到了一个,但为什么数字0类似于空字符串?当然,0==”为false 0 == '' 左操作数的类型为数字。 右操作数的类型为字符串 在这种情况下,右操作数强制为类型号: 0 == Number('') 导致 0 == 0 从抽象等式比较算法(数字4): 如果类型(x)是数字,类型(y)是字符串,则返回 比较x==ToNumber(y) 资料来源: 左操作数的类型为数字。 右操作数的类型为字符串 在这种情况下,右操作数强制为类型号: 0 ==

为什么在JavaScript中
0==“
为真?我找到了一个,但为什么数字0类似于空字符串?当然,
0==”
为false

0 == ''
左操作数的类型为数字。
右操作数的类型为字符串

在这种情况下,右操作数强制为类型号:

0 == Number('')
导致

0 == 0

抽象等式比较算法(数字4):

如果类型(x)是数字,类型(y)是字符串,则返回 比较x==ToNumber(y)

资料来源:

左操作数的类型为数字。
右操作数的类型为字符串

在这种情况下,右操作数强制为类型号:

0 == Number('')
导致

0 == 0

抽象等式比较算法(数字4):

如果类型(x)是数字,类型(y)是字符串,则返回 比较x==ToNumber(y)


来源:

你的意思是0被“强制”为false,“被强制”为false,检查为false==false=>trueFor PHP,请看,我相信这是因为Javascript在某些上下文中自动强制字符串和数字,==运算符是这些上下文中的一个,而“强制”为0。@HorstWalter否。sting被强制为数字类型。看看我的答案。@u1258;Ӫ是的,我有一个想法,两个假值的比较总是计算为真。但后来我想起了
NaN!=NaN
。。。整个想法都崩溃了,哈哈。你的意思是0在false中“casted”,在false中“casted”,检查为false==false=>TrueforPHP,我相信这是因为Javascript在某些上下文中自动强制字符串和数字,==运算符就是这些上下文中的一个,并且“”强制为0。@HorstWalter否。刺被强制为数字类型。看看我的答案。@u1258;Ӫ是的,我有一个想法,两个假值的比较总是计算为真。但后来我想起了
NaN!=NaN
。。。整个想法都崩溃了,哈哈。谢谢,我只是想反过来,0被转换成字符串,然后是假的。是的,另一方面,这意味着说这两个都是假的——就像在其他答案中一样,不是很正确。因为——正如你很好地展示的那样——原因是“=>0”。谢谢你的支持@霍斯特-是的,没错。这两种方法都是错误的,如果在
if(0)
if(“”
)中单独使用它们,可以看出,但是在
=
比较的情况下,情况并非如此。(不知道为什么Šime也在上面留言说“因为两个值都是假的”。)哦,我不知道es5.github.com。比在PDF中输入页码要容易得多。@nnnnnn这是我的第一反应。结果是不正确的。谢谢,我只是想反过来,0被转换成字符串,然后是false。是的,从另一方面来说,这意味着说这两个都是假的-就像在其他答案中一样,并不完全正确。因为——正如你很好地展示的那样——原因是“=>0”。谢谢你的支持@霍斯特-是的,没错。这两种方法都是错误的,如果在
if(0)
if(“”
)中单独使用它们,可以看出,但是在
=
比较的情况下,情况并非如此。(不知道为什么Šime也在上面留言说“因为两个值都是假的”。)哦,我不知道es5.github.com。比在PDF中输入页码要容易得多。@nnnnnn这是我的第一反应。结果证明是不正确的。