gpt4 book ai didi

javascript - JavaScript 运算符 === 是否可证明可传递?

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

JavaScript 古怪的弱类型 == 运算符可以很容易地证明是非传递性的,如下所示:

var a = "16";
var b = 16;
var c = "0x10";
alert(a == b && b == c && a != c); // alerts true

我想知道是否有任何类似的技巧可以用来处理舍入误差、InfinityNaN 应该显示 ===是不可传递的,或者是否可以证明它确实是可传递的。

最佳答案

Javascript 中的 === 运算符似乎具有传递性。

NaN 确实不同于 NaN:

>>> 0/0 === 0/0
false
>>> 0/0 !== 0/0
true

Infinity 可靠地等于 Infinity:

>>> 1/0 === 1/0
true
>>> 1/0 !== 1/0
false

对象(散列)总是不同的:

>>> var a = {}, b = {};
>>> a === b
false
>>> a !== b
true

并且由于 === 运算符不执行任何类型强制转换,因此不会发生值转换,因此基本类型的相等/不等语义将保持一致(即不会相互矛盾) ),尽管存在解释器错误。

关于javascript - JavaScript 运算符 === 是否可证明可传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7622671/

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