JavaScript 中的严格相等===(全等符号)

严格相等其实就是用全等操作符来判断两者是否相等,而且两个值在比较前都不会进行隐式转换。比如两个值的类型如果不是相同,那么这两个值是不相等的。

const  x = 123;
const  y = '123';
console.log(x === y) // false

如果两个值值相同,值的类型相同,然后类型都不是Number,那么两个值是相等的。

const str = '0';
const str2 = '0';
console.log(str === str2) // true

如果两个值都是Number类型,两个值都相等,但是两个值都不是NaN,甚至两个值分别为 +0 和 -0 时,两个值被认为是全等的

const num1 = NaN;
const num2 = NaN;
console.log(num1 === num2) // false
console.log(num1 == num2) // false
console.log(+0 === -0) // true

在日常中使用全等操作符几乎总是正确的选择。
对于除了数值之外的值,全等操作符使用明确的语义进行比较:一个值只与自身全等。
对于数值,全等操作符使用略加修改的语义来处理两个特殊情况:
第一个情况是,浮点数 0 是不分正负的。区分 +0 和 -0 在解决一些特定的数学问题时是必要的,但是大部分情况下我们并不用关心。全等操作符认为这两个值是全等的。
第二个情况是,浮点数包含了 NaN 值,用来表示某些定义不明确的数学问题的解,例如:正无穷加负无穷。全等操作符认为 NaN 与其他任何值都不全等,包括它自己。(等式 (x !== x) 成立的唯一情况是 x 的值为 NaN)

你可能感兴趣的:(JavaScript 中的严格相等===(全等符号))