NaN,它的全称是 Not a Number,即非数值。用来表示“一个本来要返回数值的操作数,却未返回数值时的情况”。这样就不会报错了嘛。
在ECMAScript中,任何数值除以非数值都会返回NaN。
NaN有二个特点:
1、任何涉及到NaN的操作,都会返回NaN;
2、NaN与任何值都不相等,包括它自己;
根据这二个特点,ECMAScript定义了 isNaN()函数。
它的只有一个参数,可以是任何类型。这个函数会确定这个参数是不是“不是数值”。
大概思路与用法是这样:
1、如果参数可以转为数值,就返回false。意思是说这个参数,“是数值”。
2、如果参数不能转为数值,就返回true。意思是说,这个参数“不是数值”。
挺绕的哈,反着的。但从这个函数的名称来理解却也正常,isNaN嘛,
“是数值”,返回的false;
“不是数值”,却返回true;
<!-- -->
isNaN()方法也可以操作对象,
很奇怪哈,isNaN认为空数组是数值;
但有数字值的数组,isNaN却认为它不是数值。
为什么呢?原因也很简单。。。