`
jveqi
  • 浏览: 313468 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js undefined NaN 判断

    博客分类:
  • js
 
阅读更多
undefined 即未定义

js 中 没有声明 或者 声明后未赋值的变量 用typeof判断后类型都是 undefined

但是直接console.log( ) 输出的话 没有声明的变量会报错;而声明后未赋值的变量则是undefined



再说一下NaN : NaN 的意思是 not a number(不是一个数字),用了undefined类型的变量参与了计算,计算后的值就是NaN类型

值得注意的是:

  1. 无法计算结果时用NaN;

  2. NaN与所有的值都不相等,包括他自己;

  3. NaN 用 typeof(NaN) 后,类型是number ;

补充:

null:表示空值;变量的值为空;

用 typeof(NaN) 后,类型是object ;

============
一、JS中if判断 非空即为真 非0即为真
1、字符串参与判断时:非空即为真
判断字符串为空的方法
if(str!=null && str!=undefined && str !='')
可简写为
if(!str){
    console.log(str)
}
2、数字参与if判断:非0非NAN即为真
var i = 0;
if(i){
    alert('here');
}else{
    alert('test is ok!');
}  输出结果为here
var i = 0;
if(i){
    alert('here');
}else{
    alert('test is ok!');
} 输出结果为test is ok
3、null类型参与判断
var i =null;
if (i){
    alert("1")
}else{
  alert("2")
}输出结果为2
4、undefined类型参与判断
var i;
if (i){
    alert("1")
}else{
  alert("2")
}输出结果为2
总结:数字参与判断时非0即为真,字符串参与判断时非空即为真,对象参与判断时非null非undefined即为真({}也为真)
5、在javascript中,哪些值能作为if的条件呢

1、布尔变量true/false
2、数字非0,非NaN/ (0 或NaN)

见下面的例子,莫以为负数就以为if语句为假了。

代码如下:
var i = -1;
if(i){
alert('here');
}else{
alert('test is ok!');
}输出结果为here
3、对象非null/(null或undefined)
4、字符串非空串(“”)/空串("")

综上所述,对于字符串,不用写一大堆if(str!=null && str!=undefined && str !=''), 只要用一句

if(!str){
    //do something
}
就可以了。

对于数字的非空判断,则要考虑使用isNaN()函数,NaN不和任何类型数据相等,包括它本身,只能用isNaN()判断。对于数字类型,if(a)语句中的a为0时if(a)为假,非0时if(a)为真:

var b;
var a = 0;
a = a + b;
if(a){
alert('1');
}else{
alert('2');
}
if(isNaN(a)){
alert('a is NaN');
}
======
在线提示js:https://www.bejson.com/runcode/javascript/
分享到:
评论

相关推荐

    js判断undefined类型,undefined,null,NaN的区别

    js判断undefined类型,undefined,null,NaN的区别

    JavaScript中严格判断NaN的方法

    在JavaScript中,假值有false、null、0、”“、undefined 和 NaN。 对于NaN的判断,JS提供了函数isNaN()。但是使用isNaN()函数只能判断变量是否非数字,而无法判断变量值是否为NaN。 于是,应用NaN的性质: > NaN ...

    JS中判断null、undefined与NaN的方法

    主要介绍了JS中判断null、undefined与NaN的方法,需要的朋友可以参考下

    js判断undefined类型,undefined,null, 的区别详细解析

    本篇文章主要是对js判断undefined类型,undefined,null,NaN的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    JS判断两个对象内容是否相等的方法示例

    比如说0和-0,null和undefined,是不相等的,NaN和NaN默认是不相等的。我写了一个isEqual方法,考虑到了诸多方面,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <...

    JavaScript判断变量是否为空的自定义函数分享

    所以在文章中写了一个函数,用以判断JS变量是否空值,如果是undefined, null, ”, NaN,false,0,[],{} ,空白字符串,都返回true,否则返回false 代码如下: function isEmpty(v) {  switch (typeof v) {  ...

    not-defined:检查是否未定义foo,即undefined,null,空字符串,数组,对象或NaN

    没有定义的检查是否未定义foo,即undefined,null,空字符串,数组,对象或NaN |安装npm install not-defined用法此代码段import notDefined from 'not-defined'if ( notDefined ( foo ) ) { // do something, ...

    JavaScript代码里的判断小结

    JavaScript一共提供了8个比较运算符,这里主要说一下严格相等运算符和相等运算符的区别 严格相等运算符=== 判断 返回 两个值类型不同 false 两个值都是null/undefined/true/false true 两个值其中之一为NaN false...

    javascript 判断一个对象为数组的方法

    javascript 判断一个对象为数组的方法 数组对象 js的数组是无类型的:数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型。数组的元素可以是对象或其他数组,这样就可以创建复杂的数据结构。 ...

    JavaScript中三个等号和两个等号你了解多少

    众所周知,用在if条件判断语句中,js有六种假值:false, null, undefined, ”, NAN, 0。先来看几个例子: [] === [] NaN === NaN NaN == NaN 0 == [] '' == [] '' == {} [] == undefined {} == [] null == ...

    一个微小的247B的工具类用于深度判断值是否相等

    此模块支持所有类型的比较,包括Function,RegExp,Date,null,undefined和NaN值。对象和数组是递归遍历的。

    ES5 ES6中Array对象去除重复项的方法总结

    数组去重本身算法不是很难,但是在 JavaScript 中很多人会忽视 NaN 的存在,因为在 JS 中 NaN !== NaN 。但是在去重中我们又不能保留两个 NaN ,所以需要进行一下判断,这是很多人容易忽视的。 ES5的实现如下: 代码

    浅谈javascript中的 “ && ” 和 “ || ”|javascript-64438.pdf

    有时候,我们会在jQuery框架或者其他js插件中发现...在js逻辑运算中,我们知道 0、””、null、false、undefined、NaN 这五种数据类型是会被判断为false的。那么,我们在进行js的逻辑运算过程中,就可以根据上面的原理

    javascript学习笔记.docx

    4) 在比较运算中,若一个对象或值被转换成NaN(Not a Number),则永远返回false。 5) in可以检查指定字符串是否是一个对象的基本属性或方法名称;instanceof运算符返回左边的对象是否右边类的一个实例;delete可以...

    JS 中可以提升幸福度的小技巧(可以识别更多另类写法)

    1. 类型强制转换 1.1 string强制转换为数字 ...undefined * 1 // NaN 1 * { valueOf: ()=>'3' } // 3 常用: 也可以使用+来转化字符串为数字 + '123' // 123 + 'ds' // NaN + '' // 0 + null // 0 + undefi

    JavaScript中的Truthy和Falsy介绍

    Falsy值包括:false、undefined、null、正负0、NaN、””。 2.其余所有的值均为Truthy,当进行逻辑判断时均为true。值得注意的是,Infinity、空数组、”0″都是Truthy值。 实验 代码如下: var x

    JavaScript笔记

    |--Boolean(布尔类型)0、-0、null、""、false/undefined或NaN,则该对象设置为false。其余都可以当true 6.数据类型的隐式转换: |--数字 + 字符串:数字转换为字符串 |--数字 + 布尔值:true转换为1,false转换为...

    JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符

    Undefined以上的值作为判断条件,都将为假值,如: 代码如下: if(undefined) { alert(‘undefined’); //这行代码不会执行 } while(null) { alert(‘null’); //这行代码不会执行 } 虽然这些值全部...

Global site tag (gtag.js) - Google Analytics