zoukankan      html  css  js  c++  java
  • 判断变量是否为 NaN

    首先要明确 NaN 的一个特性, NaN不能用相等操作符(== 和 ===) 来判断, NaN === NaN 会返回 false;

    下面是测试代码:

    console.log(isNaN('1'))                        // false
    
    console.log(isNaN(''))                        // false
    
    console.log(isNaN(' '))                        // false
    
    console.log(isNaN('35,37'))                 // true
    
    console.log(isNaN('123ABC'))                 // true
    
    console.log(isNaN('abcde'))                 // true
    
    console.log(isNaN(true))                    // false
    
    console.log(isNaN(1))                        // false
    
    console.log(isNaN(Infinity))                // false
    
    console.log(new Date().toString())            // Wed Apr 04 2018 00:49:06 GMT+0800 (中国标准时间)
    
    console.log(isNaN(new Date()))                // false
    
    console.log(isNaN(new Date().toString()))    // true
    
    console.log(isNaN(NaN))                        // true
    
    console.log(isNaN(0/0))                        // true
    
    console.log(isNaN(0/3))                        // false
    
    console.log(isNaN(null))                     // false
    
    console.log('---------------------------------------------------');
    
    console.log('35,37' === '35,37');            // true
    console.log('123ABC' === '123ABC');            // true
    console.log('abcde' === 'abcde');            // true
    console.log(new Date().toString() === new Date().toString());            // true
    console.log(0/3 === 0/3);                    // true
    console.log(3/0 === 3/0);                    // true
    
    console.log(0 === 0);                        // true
    console.log('' === '');                        // true
    console.log(Infinity === Infinity);            // true
    console.log(true === true);                    // true
    console.log(null === null);                    // true
    console.log(1 === 1);                        // true
    console.log(10 === 10);                        // true
    
    console.log('---------------------重点来了------------------------------');
    
    console.log(0/0 === 0/0);                    // false
    console.log(typeof(0/0));                    // 'number'
    console.log(typeof 0/0);                    // NaN
    console.log(typeof(NaN));                    // 'number'
    console.log(typeof NaN);                    // 'number'
    
    console.log(NaN === NaN);                    // false
    
    console.log('---------------------区别 0/0 和 NaN------------------------------');
    
    console.log(typeof 0/0);    // NaN
    console.log(typeof NaN);    // 'number'
    console.log(typeof va);        // 'number'
    
    console.log('---------------------方法总结------------------------------');
    /*
    综上 判断一个变量 到底是不是 NaN, 最好的办法就是 利用 NaN不能用相等操作符(== 和 ===) 来判断, NaN === NaN 会返回 false,
    
    虽然, 0/0 === 0/0 也会返回 false,但是 0/0 它也只是个表达式而已,算出来的结果还是 NaN, 一般也没有需要这样写的情况,
    
    所以 我们还是可以用 NaN === NaN 会返回 false 这样的特性,来进行 NaN 的判断
     */
    
    var va = NaN;
    
    if(va !== va){
        console.log('这个变量 是 ---->' + va);
    }
  • 相关阅读:
    ES6展开运算符的10个用法
    用react脚手架新建项目
    第六章 组件 56 组件-组件中的data
    第六章 组件 55 组件-使用components定义私有组件
    第六章 组件 54 组件-创建组件的方式3
    第六章 组件 53 组件-创建组件的方式2
    第六章 组件 52 组件-创建组件的方式1
    第六章 组件 51 组件化和模块化的区别以及组件的定义方式
    第五章 动画 50 动画-transition-group中appear和tag属性的作用
    第五章 动画 49 动画-实现列表删除和删除时候的动画效果
  • 原文地址:https://www.cnblogs.com/cnblogs-jcy/p/8714442.html
Copyright © 2011-2022 走看看