美文网首页
js世界中的四种相等

js世界中的四种相等

作者: 红叶1942 | 来源:发表于2019-04-02 21:06 被阅读0次

js中有四种元语相等,分别为==,===, sameValue, sameValueZero,下面分别介绍一下其异同点,在这些异同点中,关于+0,-0,NaN的判断引出了很多的设定。

==

该相等,在a,b执行比较前,会进行类型的转换,再进行比较,详情见==背后的故事

===

该严格相等,不会进行类型转换,而是直接进行比较,这里需要注意的是

+0 === -0 // true
NaN === NaN // false

sameValue

其执行算法和 === 基本相同,主要区别在于0和NaN,在该算法策略中,+0和-0不等,NaN等于NaN,js透出了一个api是Object.is,其表现如下:

Object.is(+0, -0) // false
Object.is(NaN, NaN) // true

sameValueZero

其执行算法也和===雷同,仍然是在0和NaN上有区别,但是js并没有透出api,目前在js的一些api上有体现

  • typeArray, arrayBuffer的构造函数
  • Map, Set的key值

    const m = new Map([[+0, 0], [-0, 1]]); // m只有一个值

  • Array.includes

相关文章

  • js世界中的四种相等

    js中有四种元语相等,分别为==,===, sameValue, sameValueZero,下面分别介绍一下其异...

  • js中的【相等】

    先看一道坑爹的题目: 问:最终的结果是什么? 众所周知,js中==与===是有很大区别的,主要在于==会先尝试将两...

  • JS 中的相等

    SameValueNonNumber 计算非数字类型x,y是否相同 规则: x 不是 Number 类型。 x 和...

  • JavaScript 中的相等性判断

    ES2015中有四种相等算法: 非严格相等比较 (==) 严格相等比较 (===): 用于Array.protot...

  • JavaScript 中的相等性判断及类型转换解释

    此篇文章是参考MDN的JavaScript 中的相等性判断 常见比较两个值相等的方法有四种 非严格相等 == 严格...

  • JS杂记

    1、Undefined 与 Null 的区别 Undefined 与 null 的值相等,但类型不相等。在js中,...

  • 关于js中的双等号问题

    js中存在==和===两种校验是否相等的运算符。 ==代表值相等 ===代表值和类型都相等 由于双等号的存在,使用...

  • 逻辑运算符、赋值运算符、关系运算符、相等运算符、条件运算符

    JS中为我们提供了三种逻辑运算符 赋值运算符 关系运算符 相等运算符 相等运算符用来比较两个值是否相等,如果相等会...

  • js中的相等运算符

    刚才看犀牛书,看到这个知识点,记录一下: 严格相等运算符“===” 相等运算符“==” 相等运算符和严格相等运算符...

  • []==[]为false,[]==![]为true

    JS真是博大精深啊,看似相等,其实不等,而看似不等,却是相等。 没错,你没有看错,JS就是这么不可思议! 这个问题...

网友评论

      本文标题:js世界中的四种相等

      本文链接:https://www.haomeiwen.com/subject/bgxqvqtx.html