Joh*_*epp 6 javascript maps ecmascript-6
我正在浏览 Javascript.info 中的地图章节,并且有一个指向 SameValueZero 算法的链接。有人可以用简单的语言解释该算法是如何工作的。
我试图通过链接,但找不到任何东西。
Cer*_*nce 15
参见规格:
内部比较抽象操作 SameValueZero(x, y)(其中 x 和 y 是 ECMAScript 语言值)生成 true 或 false。这样的比较执行如下:
- 如果 Type(x) 与 Type(y) 不同,则返回 false。
如果 Type(x) 是 Number,则
如果 x 为 NaN 并且 y 为 NaN,则返回 true。
如果 x 为 +0 并且 y 为 -0,则返回 true。
如果 x 为 -0 并且 y 为 +0,则返回 true。
如果 x 与 y 的 Number 值相同,则返回 true。
返回假。
返回 SameValueNonNumber(x, y)。
它与测试基本相同===
,除了当x
和y
都是 时NaN
,它们也通过测试。你可以这样实现它:
const sameValueZero = (x, y) => x === y || (Number.isNaN(x) && Number.isNaN(y));
console.log(sameValueZero(0, 0));
console.log(sameValueZero(0, 1));
console.log(sameValueZero(0, NaN));
console.log(sameValueZero(NaN, NaN));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2804 次 |
最近记录: |