如果 1=='1' //true 和 1==true //true 那么为什么 1=='true' //false
If 1=='1' //true and 1==true //true then why 1=='true' //false
为什么 1=='true'
是假的?
如果1=='1'
为真且1==true
为真。
如果 JavaScript 只比较值而不比较 ==
场景中的类型。
这是因为类型强制。
实际上,这就是 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
为什么 1=='true'
是假的?
如果1=='1'
为真且1==true
为真。
如果 JavaScript 只比较值而不比较 ==
场景中的类型。
这是因为类型强制。
实际上,这就是 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