NaN表示不是数字(not a number)。是 JavaScript 的特殊值,出现NaN的主要原因是将字符串解析成数字时出现错误。
NaN虽然表示不是数字,但仍是数值类型(number类型)。
例如:document.write(“11”-“abc”);
其执行结果为:NaN
其执行结果为:NaN的原因是一个数值型字符串和另一个非数值型字符串相减其结果就为NaN,就是非数值型字符串解析成数字时出现错误。
document.write(typeof NaN);
其得到的结果是:number
需要注意的是NaN不等于任何值,包括它本身。
console.log(NaN===NaN); //结果为false
isNaN(参数) 其参数可以是任意类型。该函数可以帮助我们确定这个参数是否“不是数值”。isNaN在接收到一个参数值之后,会对这个参数值进行解析,将其转换为数值类型。而任何不能被转换为数值类型的参数值都会导致这个函数返回true。
例如:console.log(isNaN(NaN)); //true(不能转换为数值)
console.log(isNaN(77)); //false(77是整数)
console.log(isNaN(“77”)); //false(可以转换为数值77)
console.log(isNaN(“world”)); //true(不能转换为数值)
console.log(isNaN(true)); //false(可以转换为数值1)