isNaN() 您所在的位置:网站首页 js判断是否为数值 isNaN()

isNaN()

2024-04-20 00:26| 来源: 网络整理| 查看: 265

isNaN() 是全局对象的一个函数属性。

对于数字值,isNaN() 检测该值是否为 NaN 值。当 isNaN() 函数的参数不是数字类型时,其会首先被转换为数字,然后将其结果值与 NaN 进行比较。

isNaN() 对于非数字参数的行为可能会令人困惑!例如,空字符串被强制转换为 0,布尔值被强制转换为 0 或 1;直观上,两者均“不是数字”,仅因它们的运算结果不是 NaN,而使得 isNaN() 返回 false。因此,isNaN() 既不回答“输入是否为浮点数值 NaN”,也不回答“输入是否为数字”这两个问题。

Number.isNaN() 是检测一个值是否为数字值 NaN 的更可靠的方法。或者,也可以使用表达式 x !== x,这两种方法都不会产生全局 isNaN() 不可靠的误判。要检测一个值是否为数字,请使用 typeof x === "number"。

isNaN() 函数回答的问题是“在数字上下文中,输入是否在功能上与 NaN 等价”。如果 isNaN(x) 返回 false,则可以在算术表达式中使用 x,就好像它是一个有效的数字,而不是 NaN。如果 isNaN(x) 返回 true,则 x 将被强制转换为 NaN,并使大多数算术表达式返回 NaN(因为 NaN 会传播)。例如,可以使用这种方法来测试函数的参数是否可以进行算术处理(像数字一样使用),并通过抛出错误、提供默认值等来处理不是数字的值。这样,就可以拥有一个可以利用 JavaScript 提供的全部灵活性的函数,该函数可以根据上下文隐式地转换值。

备注: + 运算符既执行数字加法又执行字符串连接。因此,即使 isNaN() 对两个操作数都返回 false,+ 运算符仍可能因为它不是被用作算术运算符而返回字符串。例如,isNaN("1") 返回 false,而 "1" + 1 返回 "11"。要确保你正在使用数字,请将值强制转换为数字并使用 Number.isNaN() 来测试结果。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有