js判断两个值是否为同一个值

307 阅读1分钟

1. Object.is(value1, value2);

value1: 第一个值

value2:第二个值

判断两个值是否为同一个值。

返回值:一个 Boolean 类型标示两个参数是否是同一个值。

2. 如果满足以下条件则两个值相等:

都是 undefined
都是 null
都是 true 或 false
都是相同长度的字符串且相同字符按相同顺序排列
都是相同对象(意味着每个对象有同一个引用)
都是数字且

  1. 都是 +0
  2. 都是 -0
  3. 都是 NaN
  4. 或都是非零而且非 NaN 且为同一个值

3.注意:

  1. 与== 运算不同。
    == 运算符在判断相等前对两边的变量(如果它们不是同一类型) 进行强制转换 (这种行为的结果会将 "" == false 判断为 true), 而 Object.is不会强制转换两边的值。

  2. 与=== 运算也不相同。
    === 运算符 (也包括 == 运算符) 将数字 -0 和 +0 视为相等 ,而将Number.NaN 与NaN视为不相等.