一、首先是 "true"==true的结果为false
segmentfault
二、为何? 在转化不一样数据类型时,相等或不等遵循如下规则:spa
(1)若是有一个操做数是布尔值,则在比较相等以前先将布尔值转化为数值,即:true 为 1 ,false 为 0对象
(2)若是有一个操做数是字符串,另外一个操做数是数值,则在比较相等以前先将字符串转化为数值,即:"3" 为 3 ,"sfehf" 为 NaN字符串
(3)若是有一个操做数是对象 ,另外一个不是对象,则调用对象的valueOf()方法(valueOf() 方法可返回 Boolean 对象的原始值),用获得的基本类型值按照前面的规则进行比较。class
三、所以,按照规则(1)和(2),转化结果为:NaN == 1 ,结果为false数据类型
更多关于 == 以及 === 的详细请参考:方法
https://segmentfault.com/a/1190000000650129数据