为什么 '1' == true 返回 true,而 '2' == true 在 JavaScript 中返回 false



我是JavaScript的新手,我想知道为什么'1'== true返回true true,但'2'== true返回false。来自Java背景,JavaScript中的类型强制很难掌握

我的答案基于此表。

在您的示例中,操作数A是字符串,并且操作数B为布尔值。因此,它在这两个上都调用ToNumber,并将它们比较严格( ===(均等。

ToNumber('2') === 2,但是 ToNumber(true) === 1,所以两个不相等。

在这里对实现的更深入的解释。

基本上归结为javaScript中的真相和虚假的值。

由于您的比较是用==完成的,这基本上意味着值比较。

在JavaScript中,True等于值等于1,就像False等于值等于值。另外,鉴于您使用==而不是===,它与1 =='1'但1!=='1'。

相同

最新更新