返回 导航

其他

hangge.com

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

作者:hangge | 2019-12-20 08:10
在开发中我们常常要进行非空判断,而 JavaScript 中有两种特殊数据类型:undefinednull
目前,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)

回到顶部