gpt4 book ai didi

javascript - 给出严格相等参数的纯函数产生非严格相等的结果

转载 作者:可可西里 更新时间:2023-11-01 02:18:38 26 4
gpt4 key购买 nike

下面是一个pure function f 对于 f(a) !== f(b) 尽管 a === b(注意 strict 等式)对于 ab 的一些值:

var f = function (x) {
return 1 / x;
}

+0 === -0 // true
f(+0) === f(-0) // false

此类函数的存在会导致难以发现的错误。还有其他我应该厌倦的例子吗?

最佳答案

是的,因为 NaN !== NaN

var f = function (x) { return Infinity - x; }

Infinity === Infinity // true
f(Infinity) === f(Infinity) // false

f(Infinity) // NaN

其他一些产生参数可以严格相等的 NaN 的例子:

0/0
Infinity/Infinity
Infinity*0
Math.sqrt(-1)
Math.log(-1)
Math.asin(-2)

关于javascript - 给出严格相等参数的纯函数产生非严格相等的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7223517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com