gpt4 book ai didi

javascript - 为什么 NaN = !NaN 返回 true?

转载 作者:搜寻专家 更新时间:2023-11-01 00:09:57 24 4
gpt4 key购买 nike

NaN 是来源可疑的残留实现之一,但在大多数情况下我明白了。然而,我今天将其输入到 Node 提示符中,却无法真正理解它...

NaN = !NaN
> true

这只是返回!NaN的计算结果吗?这是有道理的,但令我惊讶的是,在尝试将 NaN 分配给另一个值时没有出现错误。

注意:这个问题是关于这个特定语法结构的;有很多与 NaN 和 isNaN 相关的问题,但谷歌搜索后我找不到答案。感谢 Ori Drori 提供 best answer thus far .

console.log(NaN = !NaN);

最佳答案

您正在将 true 分配给 NaN,而不是使用 == 将 NaN!NaN 进行比较===,所以操作返回赋值 -> true。 Javascript 会默默地忽略这个赋值,因为 NaN is read only .

console.log(NaN = true);

// NaN hasn't changed
console.log(NaN);

如果你将use strict 添加到你的代码中,JS 将抛出一个read only。而是错误:

'use strict';
NaN = true;

关于javascript - 为什么 NaN = !NaN 返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41316848/

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