前端面试题之 判断 "true" == true 需要进行哪几步操作?

时间:2021-04-08 19:07:42

1、首先是  "true"==true的结果为false

2、为什么? 在转化不同数据类型时,相等或不等遵循以下规则:

(1)如果有一个操作数是布尔值,则在比较相等之前先将布尔值转化为数值,即:true 为 1 ,false 为 0

(2)如果有一个操作数是字符串,另一个操作数是数值,则在比较相等之前先将字符串转化为数值,即:"3" 为 3 ,"sfehf" 为 NaN

(3)如果有一个操作数是对象 ,另一个不是对象,则调用对象的valueOf()方法(valueOf() 方法可返回 Boolean 对象的原始值),用得到的基本类型值按照前面的规则进行比较。

3、因此,按照规则(1)和(2),转化结果为:NaN == 1 ,结果为false

 

更多关于 == 以及 === 的详细请参考:

https://segmentfault.com/a/1190000000650129