浅谈JavaScript中的NaN
NaN概念以及简单案例
追寻的纯粹该拥有自己的本质。-JC.F
什么是NaN?
NaN:NaN(Not a Number),它表示不是数字,但是仍是数值类型。
- NaN不是数据类型,只是基本类型number里的特殊值
- NaN不等于任何值,包括自己本身
- NaN转换为布尔值为false
NaN转换为数字(Number), 字符串(String), 布尔值(Boolean)所对应的结果:
(1) NaN转换为数字:
原始值 | 转换为数字(Number) |
---|---|
NaN | NaN |
console.log(Number(NaN));
(2) NaN转换为字符串:
原始值 | 转换为字符串(String) |
---|---|
NaN | “NaN” |
console.log(String(NaN));
(3) NaN转换为布尔值:
原始值 | 转换为布尔值(Boolean) |
---|---|
NaN | false |
console.log(Boolean(NaN));
NaN==NaN吗?
通过在编辑器验证这个问题,控制台输出得到的结果是false。
console.log(NaN==NaN);
简单转换案例:
parseInt(数值字符串):返回将字符串转化为数值的结果,返回的结果为整型(没有小数点的数字)。
- 如果第一个字符不是数字字符或者符号,parseInt()就会返回NaN;用parseInt()转换空字符串会返回NaN,而Number()对空字符返回结果为0。
- parseInt()方法如果接收的字符串含有非数字的字符,parseInt()方法会从字符串的首个字符开始寻找,一直找到非数字字符为止,并把把前面的数字字符转换成数字。
console.log(parseInt(6)); //6
console.log(parseInt("")); //NaN
console.log(parseInt(" ")); //NaN
console.log(parseInt("6")); //6
console.log(parseInt("u1")); //NaN
console.log(parseInt("1u")); //1
console.log(parseInt("070")); //70
console.log(parseInt("70")); //70
小知识点:
- 字符串加数字:其结果就是字符串。
- 除了加法外的运算符:其结果转化为数字。
console.log("10"+11); //1011
console.log(11-"10"); //1
console.log(11-"abc"); //NaN