如果1 =='1'// true且1 == true // true则为什么1 =='true'// false

时间:2015-12-08 13:13:55

标签: javascript equals

为什么1=='true'为假?

如果1=='1'为真且1==true为真。

如果JavaScript仅比较==方案中的值而不是类型。

1 个答案:

答案 0 :(得分:11)

这是因为类型强制。

实际上,这是JavaScript在使用==运算符时代表您尝试执行的操作。

1 == Number('true'); // 1 == NaN

1 == Number('1'); // 1 == 1

1 == Number(true); // 1 == 1

当使用==比较两种不同的类型时,JavaScript会尝试将它们强制转换为相同的类型进行比较。

您可以在此处详细了解该算法:http://webreflection.blogspot.com/2010/10/javascript-coercion-demystified.html