[Javascript] 怎么判断变量是否不为空

一. 实验if(a)

if(a) {
    alert('yes');
} else {
    alert('no');
}
  1. a 未声明,结果:报错 a is not defined
  2. var a; 声明未赋值, 结果:no
  3. var a = []; 结果:yes
  4. var a= {}; 结果:yes
  5. var a = 0; 结果:no; var a = 1;结果:yes
  6. var a = “”;结果:no
  7. var a = null;结果:no
  8. var a= undefined; 结果:no

二. 实验if(typeof a != ‘undefined’)

if(typeof a != 'undefined') {
    alert('yes');
} else {
    alert('no');
}

typeof a, typeof是操作符不是函数,若a未定义或未赋初值为’undefined’, 否则为’boolean’, ‘string’,’number’,’object’,’function’。

  1. a 未声明,结果:no
  2. var a; 声明未赋值, 结果:no
  3. var a = []; 结果:yes (object)
  4. var a= {}; 结果:yes(object)
  5. var a = 0; 结果:yes(number)
  6. var a = “”;结果:yes(string)
  7. var a = null;结果:yes(object)
  8. var a= undefined; 结果:no

三. 总结

用以下方法判断变量是否不为空
若a未声明if(a)报错,因此需要先typeof(a)
* 非数组
if (typeof a != “undefined” && a) {
….
}
* 数组
if (typeof a != “undefined” && a && a.length > 0) {
….
}

你可能感兴趣的:(JS)