NaN,即非数值(Not a Number),有点奇怪的是:
alert(NaN == NaN); //false
alert(NaN != NaN); //true
为什么呢?
首先,NaN的主要职能是作为返回值,当一个本来要返回数值的操作数未返回数值时(如0除以0),在其他编程语言中,程序会报错,而在JS中,系统会返回NaN
其次,问题原因就是ES规定的NaN的两个特点(规范设定)
- 任何涉及NaN的操作都会返回NaN
- NaN与任何值都不相等,包括NaN本身
针对和两个特点,ES定义了isNaN()函数,接受一个函数(可以是对象),作用是判断这个参数是否 “不是数值”,并尝试将参数转换为数值
alert(isNaN(10)); //false
alert(isNaN("10")); //false (可以转换为10)
alert(isNaN("blue")); //true
alert(isNaN(true)); //false (可以转换为1)
本文深入探讨了JavaScript中NaN值的特殊性质,包括其作为返回值的作用和与自身及其它值的比较行为,并通过实例展示了如何使用isNaN()函数来判断参数是否为非数值。

544

被折叠的 条评论
为什么被折叠?



