精华内容
下载资源
问答
  • js判断一个变量是否为NaN

    千次阅读 2020-11-02 14:20:38
    另外,NaN等于 NaN判断方法 利用 NaN 是唯一一个不等于自身的特点 function _isNaN(val) { if (val !== val) { return true; } return false; } 利用 ES6 中提供的 Object.is() 方法 var a = ...

    定义

    NaN(不是一个数字,但数据类型为number)是执行数学运算没有成功,返回失败的结果。

    另外,NaN 不等于 NaN

    判断方法

    1. 利用 NaN 是唯一一个不等于自身的特点

      function _isNaN(val) {
          if (val !== val) {
              return true;
          }
          return false;
      }
      
    2. 利用 ES6 中提供的 Object.is() 方法

      var a = "string";
      var b = 2;
      var c = a/b;  // NaN
      
      Object.is(a, NaN);	// false
      Object.is(b, NaN);	// false
      Object.is(c, NaN);	// true
      
    3. 使用 isNaN (并不推荐)

      function _isNaN(val) {
          if (typeof(val) === 'number' && isNaN(val)) {
              return true;
          }
          return false;
      }
      

      isNaN() 的参数如果不是 Number 类型,则会先把参数进行一次 Number 转换,所以如果直接使用,当传入字符串时,也会返回 true,即 isNaN('str'); // true

    展开全文
  • JsNaN等于NaN

    2020-07-09 11:10:50
    断点调试之后发现无论如何都不相等,方法parseInt()返回的结果确实是NaN,但是与右侧的NaN比较返回的结果却是false,这时候才突然想起来NaN有不等于自身的特性,所以简单收集一下资料做个整理 原因 了解原因之前...

    不知道这个小知识点用得多不多,曾经在书上看到过,所以有一些印象,前段时间顺手写出类似如下的代码

    var result;
    if (parseInt('abc')==NaN) {
      return "相等";
    } else {
      return "不等";
    }
    

    断点调试之后发现无论如何都不相等,方法parseInt()返回的结果确实是NaN,但是与右侧的NaN比较返回的结果却是false,这时候才突然想起来NaN有不等于自身的特性,所以简单收集一下资料做个整理

     

    原因

    了解原因之前我们先明确一个问题,什么时候回出现NaN,理论上来说有两种情况

    • 表达式计算
    • 类型转换

    我们逐个分析

    表达式计算

    当运算中使用了 + - * / 等运算符的时候,js会自动进行转换,讲参与计算的变量转换成js的基本类型之一的Number类型,如果转换失败就会返回NaN。比如说:

    console.log(12 + 'a'); //NaN
    

    类型转换

    比较典型的就是最初的例子里使用的parseInt(),除此之外还有parseFloat()和Number(),传入一个非数变量结果就是NaN,很好理解,顺便一提parse系列方法与Number()有些不同。

    parseInt('123abc'); // 123
    Number('123abc'); // NaN

     

    总结

    从上面两种产生NaN的情况来看,NaN是一种异常的结果,也就是“not a number”,虽然它也是一个变量,但它是描述性变量,'a'不是一个数字(not a number),'b'也不是一个数字(not a number),但是'a'和'b'并不相等,所以NaN != NaN也就成立了。

    展开全文
  • (1) window.isNaN(NaN) // true (2) window.isNaN(123) // false 注意: window.isNaN 只对数值有效,如果传入其他值,会被先转成数值。比如,传入字符串的时候,字符串会被先转成NaN,所以最后返回true,这一点要...

    1. window.isNaN()

    
    (1)  window.isNaN(NaN)  // true
    (2)  window.isNaN(123)   // false
    
    注意: window.isNaN 只对数值有效,如果传入其他值,会被先转成数值。比如,传入字符串的时候,字符串会被先转成NaN,所以最后返回true,这一点要特别引起注意。也就是说,isNaN为true的值,有可能不是NaN,而是一个字符串。(不是数值会先调用 Number 方法转化为数值)
    
    window.isNaN('Hello')    // true
    //相当于
    window.isNaN(Number('Hello'))   // true
    
    

    2. 先判断是不是数字,然后再使用 window.isNaN()

    
    function  judgeNaN (value) {
             return (typeof value) === 'number' && window.isNaN(value);
    }
    
    judgeNaN(1)          //false
    judgeNaN(NaN)          //true
    judgeNaN("我是字符串")          //false
    judgeNaN([])          //false
    judgeNaN({})          //false
    
    

    3. Number.isNaN(value) ( 1. 首先判断 value 类型是不是 number; 2. 然后判断 value 是不是 NaN)

    
    Number.isNaN(NaN);                      // true
    Number.isNaN(Number.NaN);          // true
    Number.isNaN(0/0);                          // true
    
    // 下面这些使用 window.isNaN() 将会返回 true ,Number.isNaN() 返回 false,
    // 因为 window.isNaN 会先把参数转化为数字类型,再判断是不是 NaN; 而 Number.isNaN 会先判断参数是不是数字类型,不是就返回 false, 是数字类型再进入判断是不是 NaN.
    Number.isNaN('NaN');                        // false
    Number.isNaN(undefined);                  // false
    Number.isNaN({});                                // false
    Number.isNaN('blabla');                       // false
    
    // 下面这些 window.isNaN() 和 Number.isNaN() 都返回 false
    Number.isNaN(true);
    Number.isNaN(null);
    Number.isNaN(37);
    Number.isNaN('37');
    Number.isNaN('37.37');
    Number.isNaN('');
    Number.isNaN(' ')
    
    

    补充: 不支持 Number.isNaN() 的老浏览器解决办法

    方法1 :
              Number.isNaN = Number.isNaN || function(value {
                          return  (typeof value) === 'number' && window. isNaN(value);
              }
    
    方法2 :
                Number.isNaN = Number.isNaN || function(value) {
                           return  value !== value;
               }
    
    

    4. 利用 NaN 是 JavaScript 之中唯一不等于自身的值 (最简单的办法)

    
    function judgeNaN (value) {
             return value !== value;
    }
    
    judgeNaN(1)                                //false
    judgeNaN(NaN)                          //true
    judgeNaN( "我是字符串" )          //false
    judgeNaN([])                               //false
    judgeNaN({})                              //false
    
    

    5.补充知识: Object.is() 是 ES6 用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。除了对 +0 和 -0 以及 NaN 的判断

    Object.is() 链接

    
    NaN === NaN                        //false
    Object.is(NaN, NaN)              //true
    
    +0 === -0                                //true
    Object.is(+0, -0)                      //false
    
    
    展开全文
  • 主要介绍了JavaScript中严格判断NaN的方法,非常不错,具有参考借鉴价值 ,需要的朋友可以参考下
  • js判断值是否为NAN

    2021-08-19 10:01:25
    //判断是否是NAN function isNaN(n) { if(n !== n) { return true; } else { return false; } }
    //判断是否是NAN
    function isNaN(n) {
    	if(n !== n) {
    		return true;
    	} else {
    		return false;
    	}
    }

    展开全文
  • js中, 由于浮点数的精度的原因,NaNNaN是不...利用js自带的方法isNaN来判断是否是NaN是不准确的,因此可以利用NaNNaN不相等这个特点来判断: var a = NaN;a !== NaN;//true var b = "aaaa";b !== NaN;//false
  • 判断一个数字是否为NaN 这里应该说是判断元素是否为能够转化为Number类型更为合适 console.log(isNaN(NaN)) //true console.log(isNaN(123)) //false console.log(isNaN('a')) //true console.log(isNaN('1')) //...
  • js判断变量为NaN的方法

    万次阅读 2019-06-19 11:34:33
    isNaN(data)返回true即为NaN
  • Javascript如何判断一个值是不是NaN

    千次阅读 2020-01-10 16:12:45
    问题由来:如何判断一个函数的返回值是不是NaNNaN==NaN; //false Number.isNaN(NaN); //treu Object.is(NaN,NaN); //true Object.is()方法用来判断两个值是否是相同的值。 用法 Object.is(val1, val2); ...
  • JS 前台如何判断某变量值是否是NAN

    千次阅读 2018-12-24 17:52:32
    1.什么是NAN NAN=Not A Number,即“不是数字”,为了方便理解,我们可以想成是数学概念中的无穷。...用 test_var==NAN 是不能判断的(结果都是false)。 值是NAN的变量不与任何值相等,包括它自己,因此...
  • JS判断NaN的方法

    千次阅读 2018-06-21 16:50:43
    var tmp = 0/0; if(isNaN(tmp)){ alert("NaN"); }
  • js 判断NaN

    千次阅读 2019-04-11 11:15:14
    var ddd='ddfd'; if(isNaN(Number(ddd))){ alert('yes ,you are right'); }else { alert('yes ,you are error'); }
  • js NaN判断

    2020-04-28 11:22:38
    NaN 特殊的Number,其与所有其它值均不等(包括自己)。 NaN === NaN; // false 判断 NaN 的唯一方法:isNaN() isNaN(NaN); // true
  • 使用js判断a是不是NaN 类型

    千次阅读 2019-05-25 10:35:21
    首先先明白NaN 什么意思: NaN 意思:不是一个数组 isNaN :函数用来确定一个值是否为NaN,如果给定值为 NaN则返回值为true;否则为false。 var a = 123; var b = '123'; var c = 'adc'; var d = 'a13'; var e...
  • JS判断NaN

    2020-12-20 15:30:41
    参考:添加链接描述 例子: const log = console....log("NaN ", isNaN(NaN)) log("number ", isNaN(83)) log("null ", isNaN(null)) let n = NaN; for (let k in n) { log("k = ", k, ", ", n[k]) } 结果: $ node
  • 首先我们要知道: NaN六亲不认,连自己都不认...采用global对象的isNaN():判断一个值是否是NaN(补:global对象是全局对象,所以用的时候直接写方法名即可,它的方法还有encodeurI(),decodeurI(),eval()等) ...
  • 然后出现Nan,找了一会。 收集资料如下判断: 1.判断undefined: var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined"); } 说明:typeof 返回的是字符串,有六种可能:”number”、...
  • js中严格判断NaN

    2019-07-23 16:50:11
    var arr = [ ‘100px’, ‘abc’-6, [], -98765, 34, -2, 0, ‘300’, , function(){alert(1);},null, document, [], true, ‘200px’-30,‘23.45元’, 5, Number(‘abc’),function...判断其中哪些是NaN? 若直接...
  • js 如何判断NaN

    2015-06-11 11:32:00
    javascript 的非数值(NaN)有点特殊 他和任何数都不相等 包括自身。 所以没办法通过x == NaN 判断 x是否是NaN 应该使用 x != x isNaN 函数 isFinite函数 转载于:...
  • JS如何准确判断NaN(isNaN函数不可靠问题) 使用isNaN()判断一个变量是否为NaN踩了个坑。 undefined也能够通过isNaN()的判断,难道我还要在判断一下是否为undefined?很明显这样不够优雅 逼格。 那么如何一步到位...
  • 首先感谢大佬的博客让我茅塞顿开(利用“nan是变量≠自身的一个特例”这个性质,可以判断这个数是否为nan,太妙了): ...depth_1-utm_source=distribute.pc_relevant.n..
  • 怎样判断NaN

    千次阅读 2017-08-05 17:28:39
    **关于怎样判断NaN的一些方法** 看见了这样一个题目:找出下面当中的是NaN的位置 那么首先肯定是要找出当中哪些是NaN,判断NaN时最重要的是先要知道NaN是数字类型,其意思是 not a number,就是不是数字的数字类型。...
  • JS中的NaN

    万次阅读 多人点赞 2019-09-23 20:52:38
    JavaScript中,NaN是一个特殊的数字值(typeof NaN的结果为number),是not a number的缩写,表示不是一个合法的数字。 1. NaN的产生: 一个不能被解析的数字 Number('abc') // NaN Number(undefined) // NaN ...
  • 我们知道,如果对象是3种情况,那么就会js调用对象的属性会进行报错,那么我们在调用前应该进行判断是否为这3种情况。 //判断空或者undefined或者NAN,用它来调用方法会出错误的。 function isTransferErrorEmpty...
  • JS如何判断值(undefined、null、NAN) undefined var arg = undefined; if (typeof(arg) == "undefined") { alert("undefined"); } null var exp = null; if (!exp && typeof(exp)!="undefined" &...
  • 判断Infinite和NaN一、Number.isFinite()二、Number.isNaN()三、isFinite()四、isNaN() 一、Number.isFinite() 判断是不是Infinite,es6新增,新方法只对数值有效。 对于非数值一律返回false。 二、Number.isNaN...
  • 我们如何判断一个值是否等于NaN呢?这篇文章好好聊聊NaN。 1.NaN是什么? NaN全称是Not-A-Number(不是一个数字),我们可以通过Number.NaN来获得一个NaN,在类型转换失败时,我们常常会得到一个NaN,需要注意的是,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,403
精华内容 15,761
关键字:

js判断等于nan