为什么 typeof NaN 返回“数字”?

2023-12-10

只是出于好奇。

这似乎不太符合逻辑typeof NaN是数字。就像NaN === NaN or NaN == NaN顺便说一句,返回 false。这是 JavaScript 的特性之一吗?或者有什么原因吗?

编辑:感谢您的回答。然而,要让人们头脑清醒并不是一件容易的事。阅读答案和维基我了解更多,但仍然是这样的一句话

与一个比较NaN即使与自身进行比较,也始终返回无序结果。比较谓词要么是信令的,要么是非信令的,信令版本表示此类比较的无效异常。等式和不等式谓词是非信号的,所以x = x返回 false 可用于测试 x 是否是安静的NaN.

只是让我头晕目眩。如果有人可以将其翻译成人类(而不是数学家)可读的语言,我将不胜感激。

[附录 2023/06] 我创建了一个小模块来检查 ES 中任何内容的类型。可能有帮助,检查一下@GitHub


好吧,“不是数字”的东西被认为是数字,这可能看起来有点奇怪,但是NaN仍然是一个数字type,尽管如此:-)

NaN只是意味着特定值无法在数字类型的限制内表示(尽管可以说所有数字都必须四舍五入才能适合,但是NaN是一种特殊情况)。

具体的NaN不被认为等于另一个NaN因为它们可能是不同的值。然而,NaN仍然是数字类型,就像 2718 或 31415 一样。


至于您更新的问题,用外行人的话解释一下:

即使与 NaN 本身进行比较,与 NaN 的比较也始终返回无序结果。比较谓词要么是信令的,要么是非信令的,信令版本表示此类比较的无效异常。等式和不等式谓词是无信号的,因此返回 false 的 x = x 可用于测试 x 是否是安静的 NaN。

所有这些意味着(分成几部分):

即使与 NaN 本身进行比较,与 NaN 的比较也始终返回无序结果。

基本上,一个NaN不等于任何其他数字,包括另一个数字NaN,甚至包括itself.

比较谓词要么是信令的,要么是非信令的,信令版本表示此类比较的无效异常。

尝试在 a 之间进行比较(小于、大于等)操作NaN另一个数字可能导致抛出异常(信号)或只是得到错误结果(非信号或安静)。

等式和不等式谓词是无信号的,因此返回 false 的 x = x 可用于测试 x 是否是安静的 NaN。

相等性测试(等于、不等于)永远不会发出信号,因此使用它们不会导致异常。如果您有常规号码x, then x == x永远是真的。如果x is a NaN, then x == x永远是假的。它为您提供了一种检测方法NaN轻松地(安静地)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 typeof NaN 返回“数字”? 的相关文章

  • 如何检测浏览器是否支持自定义元素

    我正在查看 Modernizr 它应该有助于功能检测 这应该可以帮助确定您的网站是否与给定的 Web 浏览器兼容 但我没有看到任何表明我可以使用它来检测自定义 HTML 的内容我们在内容中创建和定义的元素 如果不是 Modernizr 我如
  • 如何测试 javascript 闭包内的函数

    这似乎是不可能的 也可能是 但我正在尝试更多的 TDD 但我总是在闭包方面碰壁 假设我有以下内容 function createSomething init function privateMethod param return init
  • React js Stripe 结账不起作用

    我正在尝试在 React js 应用程序中呈现条带结账默认表单
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 除了更改标题之外,如何在 Firefox 中强制另存为对话框?

    有没有办法在 ff 中强制打开 www example com example pdf 的另存为对话框 我无法更改标题 如果您可以将文件以 Base64 格式输出到客户端 则可以使用 data uri 进行下载 location href
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • 如何在react-native中获取Text组件的onPress值

    我是一名新的 React Native 开发人员 我想使用 onPress 获取 Text 组件的值并将其传递给函数
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • 为什么在 Internet Explorer 中访问 localStorage 对象会引发错误?

    我正在解决一个客户端问题 Modernizr 意外地没有检测到对localStorageInternet Explorer 9 中的对象 我的页面正确使用 HTML 5 文档类型 并且开发人员工具报告该页面具有 IE9 的浏览器模式和 IE
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a

随机推荐

  • 如何将 int 转换为 NSString?

    我想转换一个int to a NSString在目标 C 中 我怎样才能做到这一点 基元可以转换为对象 表达 所以shortest方法就是转变int to NSNumber并选取字符串表示形式stringValue method NSStr
  • 泛型集合“无法实例化类型 ArrayList

    根据我读到的内容 我认为这是不可能的 但我想确定一下 我有课OpDTO和其他几个 DTO extends OpDTO 然后 我想要一种方法从这些子 DTO 的列表中仅提取某些元素 并在另一个列表中返回提取的元素 public List
  • komodo edit 7.1 在 php 模式下无法识别 html5 标签

    标题已经很说明性了 在 php 模式下 komodo edit 假定 html4 并在使用像文章 时间 部分这样的 html5 标签时引发错误 这可能会很麻烦 因为它可能会覆盖 php 错误 有没有办法来解决这个问题 也许找到了解决方案 首
  • 检测网页上的合成点击

    通过 Javascript 是否可以检测合成点击 不是由人类生成而是使用 JS 或其他自动化工具生成的点击 也许我们可以做这样的事情 document onmousedown function e if typeof e pageX und
  • Cocoapods pod 稳定构建设置

    有没有办法在中添加构建设置cocoapodspod 无需直接更改 Pods 项目或其他自动生成的内容 因此在之后它仍然会存在pod install 具体来说 我需要设置DISABLE MIXPANEL AB DESIGNER 1在 Mixp
  • Yii - “白屏死机”,调试技巧

    我有一个运行 Yii 应用程序的临时服务器 现在出现 死机白屏 我看不到屏幕上输出的任何内容 甚至 查看源代码 时的源代码 在本地相同的代码运行没有任何问题 任何人都可以建议一个在 Yii 应用程序中调试 死机白屏 的好例程吗 在 yii
  • asp.net 会员提供商 Guid userID

    我需要 我认为 获取当前登录的用户 ID 以便我可以更新使用此用户 ID 作为外键的表之一 问题是数据库中的userID与此不匹配 Guid currentUser Guid Membership GetUser ProviderUserK
  • 仅安装较新的框架时应用程序是否会运行

    我似乎找不到我的问题的答案 所以我只是在这里问 假设我有一个为 Net Framework 4 62 构建的应用程序 它可以在只安装了 4 7 的服务器上运行吗 当然除了一些旧的框架 或者我需要安装每个目标框架吗 NET Framework
  • 如何使用 CSS 透视将元素定位在正确的 3D 位置

    我正在尝试找到一种方法来在以给定角度放置的照片元素之上映射元素 笔记本电脑的照片就是一个很好的例子 我想在屏幕顶部映射一个元素 视频 图像或其他 例如循环播放视频等 这个任务看起来很简单 但我发现它非常棘手 因为我找不到如何通过变换 旋转
  • 标签为类别页面 Blogger 中的标题

    我有一个网站 可以在其中显示具有所有相同标签的帖子 有没有办法在显示具有相同标签的所有帖子时将标签作为标题 例如 关于https newsotuniverse blogspot ca search label astrophysicals有
  • Swift 中每次动画迭代后的延迟

    我有一个核心动画 repeatCount被设定为Float infinity 在动画的每次迭代之后 即 每次重复之后 我想要延迟 3 秒 我怎样才能实现这个目标 谢谢 您可以使用function像下面这样做你需要做的事情 func anim
  • 从 Delphi 访问 Android 的 SharedPreferences 类

    我刚刚开始使用 Delphi XE5 进行 Android 开发 并尝试构建一个简单的应用程序 该应用程序需要能够保留一些输入的信息 配置 我已经弄清楚了 Android 类共享首选项可能是最简单的方法 但我不知道如何从 Delphi XE
  • 协程演示源码

    这是一个程序示例 其中协程确实有助于简化 该算法 恕我直言 否则很难实现 我还尝试为演示选择一个有用的任务 该实用程序将 一个二进制文件到一系列 A Z 符号 以及后面 没有任何显着的 冗余 并且它能够处理任何指定的字母表 参见 M Ini
  • 新的 Firebase 数据导致 TableView 单元格闪烁 (Firebase/iOS/Swift)

    我的主要问题是如何消除闪烁 但我也只是想知道我是否正确且最有效地处理非规范化 Firebase 数据 我的方法接近正确吗 因此 我正在努力尝试使用已非规范化的数据正确显示 firebase 数据库中的数据 我有帖子 然后是与每个帖子相关的评
  • 从 2010 Data Macro 中运行 vba 代码

    我有一个创建文本文件的函数 需要从数据宏运行它 这样晚上的人就可以在桌子上使用它了 我该怎么做呢 根据我们的聊天 你不知道 数据宏甚至可以在 MS Access 之外运行 如果它们使用 MS Access 内的代码 则不会发生这种情况 它们
  • dyld:惰性符号绑定失败:找不到符号:____chkstk_darwin macOS High Sierra 10.13.6

    命令 Brew 安装节点 安装后 命令 哪个节点 gt 输出 usr local bin node 命令 node v gt 输出 dyld lazy symbol binding failed Symbol not found chkst
  • 在 codeigniter 中处理 $_POST

    我如何在 codeigniter 中执行此操作 cuisineArr isset POST cuisine POST cuisine array 我在某处读到直接使用 Post 不是正确的方法 应该使用 post 反而 但是我该如何在 co
  • 我需要做什么才能让 Core Data 自动迁移模型?

    我已阅读有关核心数据模型自动 轻量级迁移的文档 但我在实现它时遇到问题 据我了解 应用程序应该注意到它拥有的模型和设备上已经存在的模型不相同 如果您仅添加了属性或关系以及类似的简单更改 那么模型应该会自动升级 有什么指示吗 我需要在 Xco
  • 反应式和非阻塞方法 Micronaut 与 apache kafka

    我试图从 Micronaut kafka 实现中获取非阻塞响应 但是返回值不起作用 public class ProductManager implements IProductManager private final Applicati
  • 为什么 typeof NaN 返回“数字”?

    只是出于好奇 这似乎不太符合逻辑typeof NaN是数字 就像NaN NaN or NaN NaN顺便说一句 返回 false 这是 JavaScript 的特性之一吗 或者有什么原因吗 编辑 感谢您的回答 然而 要让人们头脑清醒并不是一