博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js判断2个值是否相等的规则
阅读量:7030 次
发布时间:2019-06-28

本文共 704 字,大约阅读时间需要 2 分钟。

假设需要判断的是 x==y?

1. 如果 x 不是正常值(比如抛出一个错误),中断执行。2. 如果 y 不是正常值,中断执行。3. 如果 Type(x) 与 Type(y) 相同,执行严格相等运算 x === y 。4. 如果 x 是 null , y 是 undefined ,返回 true 。5. 如果 x 是 undefined , y 是 null ,返回 true 。6. 如果 Type(x) 是数值, Type(y) 是字符串,返回 x == ToNumber(y) 的结果。7. 如果 Type(x) 是字符串, Type(y) 是数值,返回 ToNumber(x) == y 的结果。8. 如果 Type(x) 是布尔值,返回 ToNumber(x) == y 的结果。9. 如果 Type(y) 是布尔值,返回 x == ToNumber(y) 的结果。10. 如果 Type(x) 是字符串或数值或 Symbol 值, Type(y) 是对象,返回 x == ToPrimitive(y) 的结果。11. 如果 Type(x) 是对象, Type(y) 是字符串或数值或 Symbol 值,返回 ToPrimitive(x) == y 的结果。12. 返回 false 。复制代码

其中,ToPrimitive(obj)等价于:先计算obj.valueOf(),如果结果为原始值,则返回此结果;否则.计算obj.toString(),如果结果是原始值,则返回此结果;否则,抛出异常

转载于:https://juejin.im/post/5cc6ee28e51d456e4e0886d4

你可能感兴趣的文章
chmod更改文件的权限
查看>>
oracle 10g/11g RAC 启停归档模式
查看>>
poj3461 Oulipo
查看>>
OAuth2.0学习(1-12)开源的OAuth2.0项目和比较
查看>>
Gitlab,这也就O了???
查看>>
2014 百度之星 1003 题解 Xor Sum
查看>>
Linux中在主机上实现对备机上文件夹及文件的操作的C代码实现
查看>>
iOS 块的简单理解
查看>>
idea中如何配置git以及在idea中初始化git
查看>>
关于JQuery Class选择器的一点
查看>>
POJ3264 Balanced Lineup
查看>>
redis-cli 连接远程服务器
查看>>
emlog通过pjax实现无刷新加载网页--完美解决cnzz统计和javascript失效问题
查看>>
sublime 之 vitage/emmet
查看>>
代码管理(四)SVN和Git对比
查看>>
python - hadoop,mapreduce demo
查看>>
mongodb常见管理命令
查看>>
1.7 以函数对象取代函数
查看>>
Vue过渡效果之JS过渡
查看>>
Android项目实战(三):实现第一次进入软件的引导页
查看>>