2023-07-23 23:21:05
isNaN 是 JavaScript 中的一个全局函数,用于检查一个值是否为 NaN(Not a Number),即“不是一个有效的数字”。
核心功能true:参数是 NaN 或无法转换为数字的值(如字符串 "hello")。
false:参数是有效数字(如 1、"123")。
隐式类型转换:isNaN 会先尝试将参数转换为数字,再判断是否为 NaN。例如:
isNaN("123") → 转换为 123 → 返回 false。
isNaN("") → 转换为 0 → 返回 false(可能不符合直觉)。
与 Number.isNaN() 的区别:ES6 新增的 Number.isNaN() 更严格,不会进行类型转换:
Number.isNaN("hello"); // false(因为类型不是 number)Number.isNaN(NaN); // true特殊值处理:
NaN 是唯一不等于自身的值:NaN === NaN 返回 false。
数学运算结果无效时(如 0/0、parseInt("abc"))会生成 NaN。
通过合理选择方法,可以更精准地处理数字验证逻辑。