为什么是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