阿里:如何判断两个变量相等

缺乏、安全感 2022-10-22 02:49 235阅读 0赞

面试官也在看的前端面试资料

使用 API:Object.is() 方法判断两个值是否为同一个值

  1. Object.is(x, y)

Polyfill:

  1. if (!Object.is) {
  2. Object.is = function(x, y) {
  3. // SameValue algorithm
  4. if (x === y) { // Steps 1-5, 7-10
  5. // Steps 6.b-6.e: +0 != -0
  6. return x !== 0 || 1 / x === 1 / y;
  7. } else {
  8. // Step 6.a: NaN == NaN
  9. return x !== x && y !== y;
  10. }
  11. };
  12. }

扩展:

JavaScript提供三种不同的值比较操作:

  • 严格相等比较:使用 ===
  • 抽象相等比较:使用 ==
  • 以及 Object.is (ECMAScript 2015/ ES6 新特性):同值相等

其中:

  • ===:进行相同的比较,不进行类型转换 (如果类型不同, 只是总会返回 false )
  • ==:执行类型转换,比较两个值是否相等
  • Object.is :与 === 相同,但是对于 NaN-0+0 进行特殊处理, Object.is(NaN, NaN)trueObject.is(+0, -0)false

来自:https://github.com/sisterAn/JavaScript-Algorithms

最后

欢迎关注【前端瓶子君】✿✿ヽ(°▽°)ノ✿

回复「算法」,加入前端算法源码编程群,每日一刷(工作日),每题瓶子君都会很认真的解答哟!

回复「交流」,吹吹水、聊聊技术、吐吐槽!

回复「阅读」,每日刷刷高质量好文!

如果这篇文章对你有帮助,「在看」是最大的支持

a629825d906c07a4ca452a5ea83d46fa.png

》》面试官也在看的算法资料《《

“在看和转发”就是最大的支持

发表评论

表情:
评论列表 (有 0 条评论,235人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java 判断字符串相等

    在编程中,通常比较两个字符串是否相同的表达式是“” ,但在 Java 中不能这么写。在 Java 中,如果要比较 a 字符串是否等于 b 字符串,需要这么写: if(a.equ

    相关 判断List是否相等

    最近一位同学在面试时被问到如何比较两个list是否相等?Java中的list是按自然顺序排列的。因此,如果两个list包含相同顺序的完全相同的元素,则认为它们是相等的,如果忽略