isNaN() JavaScript判断变量是否是一个数字

  NaN,即非数值(Not a Number)是一个特殊的值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。比如,在其他语言中,任何数值除 以 0 都会导致错误而终止程序执行。但在 ECMAScript 中,会返回出特殊的值,因此不会影 响程序执行。
var box = 0 / 0; // NaN

var box = 12 / 0; // Infinity

var box = 12 / 0 * 0; // NaN  可以通过 Number.NaN 得到 NaN 值, 任何与 NaN 进行运算的结果均为 NaN, NaN 与自

 

  可以通过 Number.NaN 得到 NaN 值, 任何与 NaN 进行运算的结果均为 NaN, NaN 与自身不相等(NaN 不与任何值相等)。
Number.NaN; // NaN

NaN+1; // NaN

NaN == NaN // false

 

  ECMAScript 提供了 isNaN()函数,用来判断这个值到底是不是 NaN。isNaN()函数在接收到一个值之后,会尝试将这个值转换为数值。
isNaN(NaN); // true

isNaN(25); // false 25 是一个数值

isNaN('25'); // false '25'是一个字符串数值,可以转成数值

isNaN('Lee'); // true 'Lee'不能转换为数值

isNaN(true); // false true可以转成成 1

 

  isNaN()函数也适用于对象。在调用 isNaN()函数过程中,首先会调用 valueOf()方法,然后确定返回值是否能够转换成数值。如果不能,则基于这个返回值再调用 toString()方法,再测试返回值。
var box = {

    toString : function () {

        return '123'; //可以改成 return 'Lee'查看效果

    }

};

isNaN(box); //false

 

你可能感兴趣的:(JavaScript)