为了账号安全,请及时绑定邮箱和手机立即绑定

javascript 比较运算子 == , === 和 valueOf 的关系

javascript 比较运算子 == , === 和 valueOf 的关系

慕虎7371278 2018-12-19 15:17:20
为什麽 严格比较运算子 === 不会执行 Object.valueOf 而 一般 比较运算子 == 却执行 Object.valueOf ,MDN的文件在介绍 === 并没有看到相关的说明,请问关於这部份的文件要在哪里找到呢?let num = 0;const a = {  valueOf: function() {     ++num;    return num;   } };console.log(a == 1, a.valueOf());// false 2 , a===1  ==> 比较时执行了 valueOf() 总共执行 2 次console.log(a === 1, a.valueOf());// false 3 , a===1  ==> 比较时没有执行 valueOf() 总共执行 1 次
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

因为 ==运算符,比较对象和基础数据类型,对象会进行隐式转换为基础数据类型。(一般先valueOf后toString)
而 ===运算符,如果两者数据类型不同,直接会返回false。
给你贴个文档地址

查看完整回答
反对 回复 2018-12-19
  • 1 回答
  • 0 关注
  • 410 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信