为什么1=='true'
是false?If 1 =='1'// true and 1 == true // true then why 1 =='true'// false
如果1=='1'
为真并且1==true
为真。
如果JavaScript仅比较==
方案中的类型而不是类型。
为什么1=='true'
是false?If 1 =='1'// true and 1 == true // true then why 1 =='true'// false
如果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
谢谢**乔希**,为宝贵的投入。 – user1805928
@ user1805928因为'真=“true'' ...!? – Biffen
我真的不明白为什么这个问题被拒绝投票。海报问了一个有效的,而且很有教育意义的问题,这个问题在解决bug问题上会有很大的帮助。如果你认为这个问题很愚蠢或者显而易见,我鼓励他们给出一个答案并进行解释。 – AVAVT
请看下面... http://stackoverflow.com/questions/359494/does-it-matter-which-equals-operator-vs-i-use-in-javascript-comparisons –