当前位置: > > > JS - 判断空值的方法(undefined、null)

JS - 判断空值的方法(undefined、null)

在开发中我们常常要进行非空判断,而 JavaScript 中有两种特殊数据类型:undefinednull
  • nullNull 类型,表示“空值”,代表一个空对象指针,使用 typeof 运算得到 “object”,所以我们可以认为它是一个特殊的对象值。
  • undefinedUndefined 类型,当声明了一个变量未初始化时,得到的就是 undefined
目前,nullundefined 基本是同义的,只有实际用法上有一些细微的差别:
  • null 表示"没有对象",即该处不应该有值。
  • undefined 表示"缺少值",就是此处应该有一个值,但是还没有定义。
下面通过样例演示如何判断一个变量是否为 null,或者 undefined

1,仅判断是否为 undefined

var a;
var b = null;

if(typeof(a) == 'undefined') {
  console.log('a 是 undefined');
}else{
  console.log('a 不是 undefined');
}

if(typeof(b) == 'undefined') {
  console.log('b 是 undefined');
}else{
  console.log('b 不是 undefined');
}

2,仅判断是否为 null

var a;
var b = null;

if(!a && typeof(a) !== 'undefined' && a != 0) {
  console.log('a 是 null');
}else{
  console.log('a 不是 null');
}

if(!b && typeof(b) !== 'undefined' && b != 0) {
  console.log('b 是 null');
}else{
  console.log('b 不是 null');
}

3,非空判断

(1)实际开发中我们可能不需要区分地这么细,而是只要简单地进行非空判断(如果变量为 undefined 或者为 null 都表示空),那么可以使用下面方法:
var a;
var b = null;
 
if(!a) {
  console.log('a 为空');
}else{
  console.log('a 不为空');
}
 
if(!b) {
  console.log('b 为空');
}else{
  console.log('b 不为空');
}

(2)如果变量有可能是数字 0 的话,使用上面的判断还不够严谨,可以使用下面方法:
var a;
var b = null;
var c = 0;
 
if(!a && a != 0) {
  console.log('a 为空');
}else{
  console.log('a 不为空');
}
 
if(!b && b != 0) {
  console.log('b 为空');
}else{
  console.log('b 不为空');
}

if(!c && c != 0) {
  console.log('c 为空');
}else{
  console.log('c 不为空');
}
评论0