gpt4 book ai didi

javascript - 在什么样的代码中 `typeof NaN` 是 'number' 才有意义

转载 作者:行者123 更新时间:2023-11-30 12:24:27 26 4
gpt4 key购买 nike

据我所知,我已经意识到 NaN 的类型是数字的这种特性。现在,some people竭尽全力将其捍卫为“通用计算机科学原则”,但最终我仍然感觉不对(只是因为在 numeric types 部分下定义的内容不符合要求一个数字)。

无论哪种方式,这让我想知道,是否有任何典型情况可以使代码更易于阅读?通常它只是意味着你必须添加一个额外的检查它是一个数字 and 而不是 NaN 这是相当麻烦的。在我的一生中,我不记得曾经遇到过我想要 typeof NaN 返回number 的情况。那么,我错过了什么吗?还是真的像看起来那么糟糕?

最佳答案

所有 类型的代码中。常量 NaN 明确属于“number”类型。值 NaN 应该not 理解口语短语“不是数字”的意思。相反,它是 IEEE 浮点规范中的一个特定术语,描述了一组值,其位排列使得规范规则无法对这些值进行有意义的解释。因此,它们是数字,但它们“不是数字”。

它确实让事情变得有些奇怪,但它在某种程度上与您遇到的处理字符串和空字符串的方式没有太大区别。它只是您(可能)需要担心的原始类型的值。通常,从某些计算中得到 NaN 可能意味着您的计算需要在上游某处进行有效性测试。

现在, 有点不稳定的是 JavaScript 使用 NaN 来报告无法转换为数字的非数字值。在这种情况下抛出异常可能会更健壮并且在语义上更正确,但在这一点上这是桥下的水。

关于javascript - 在什么样的代码中 `typeof NaN` 是 'number' 才有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29955850/

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