您的位置:首页 > Web前端 > JavaScript

JS中Number类型的NaN值

2016-04-20 13:37 267 查看
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