JavaScript : isNaN()和Number.isNan()

来源:互联网 发布:java 中文字符串乱码 编辑:程序博客网 时间:2024/06/05 11:10
Number.isNaN(NaN);        // trueNumber.isNaN(Number.NaN); // trueNumber.isNaN(0 / 0);      // true
isNaN(NaN);       // trueisNaN(undefined); // trueisNaN({});        // trueisNaN([]);        //false
// e.g. these would have been true with global isNaN()Number.isNaN('NaN');      // falseNumber.isNaN(undefined);  // falseNumber.isNaN({});         // falseNumber.isNaN('blabla');   // falseNumber.isNaN([])          // false
Number.isNaN(true);       //falseNumber.isNaN(null);       //falseNumber.isNaN(37);         //falseNumber.isNaN('37');       //falseNumber.isNaN('37.37');    //falseNumber.isNaN('');         //falseNumber.isNaN(' ');        //false
isNaN(true);      // falseisNaN(null);      // falseisNaN(37);        // falseisNaN('37');      // false: "37" is converted to the number 37 which is not NaNisNaN('37.37');   // false: "37.37" is converted to the number 37.37 which is not NaNisNaN('123ABC');  // true:  parseInt("123ABC") is 123 but Number("123ABC") is NaNisNaN('');        // false: the empty string is converted to 0 which is not NaNisNaN(' ');       // false: a string with spaces is converted to 0 which is not NaNisNaN(new Date());                // falseisNaN(new Date().toString());     // true// This is a false positive and the reason why isNaN is not entirely reliableisNaN('blabla');   // true: "blabla" is converted to a number.                    // Parsing this as a number fails and returns NaN