阿里:如何判断两个变量相等
面试官也在看的前端面试资料
使用 API:Object.is()
方法判断两个值是否为同一个值
Object.is(x, y)
Polyfill:
if (!Object.is) {
Object.is = function(x, y) {
// SameValue algorithm
if (x === y) { // Steps 1-5, 7-10
// Steps 6.b-6.e: +0 != -0
return x !== 0 || 1 / x === 1 / y;
} else {
// Step 6.a: NaN == NaN
return x !== x && y !== y;
}
};
}
扩展:
JavaScript提供三种不同的值比较操作:
- 严格相等比较:使用 ===
- 抽象相等比较:使用 ==
- 以及
Object.is
(ECMAScript 2015/ ES6 新特性):同值相等
其中:
- ===:进行相同的比较,不进行类型转换 (如果类型不同, 只是总会返回 false )
- ==:执行类型转换,比较两个值是否相等
Object.is
:与 === 相同,但是对于NaN
和-0
和+0
进行特殊处理,Object.is(NaN, NaN)
为true
,Object.is(+0, -0)
为false
来自:https://github.com/sisterAn/JavaScript-Algorithms
最后
欢迎关注【前端瓶子君】✿✿ヽ(°▽°)ノ✿
回复「算法」,加入前端算法源码编程群,每日一刷(工作日),每题瓶子君都会很认真的解答哟!
回复「交流」,吹吹水、聊聊技术、吐吐槽!
回复「阅读」,每日刷刷高质量好文!
如果这篇文章对你有帮助,「在看」是最大的支持
》》面试官也在看的算法资料《《
“在看和转发”就是最大的支持
还没有评论,来说两句吧...