一. 实验if(a)
if(a) {
alert('yes');
} else {
alert('no');
}
- a 未声明,结果:报错 a is not defined
- var a; 声明未赋值, 结果:no
- var a = []; 结果:yes
- var a= {}; 结果:yes
- var a = 0; 结果:no; var a = 1;结果:yes
- var a = “”;结果:no
- var a = null;结果:no
- 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’。
- a 未声明,结果:no
- var a; 声明未赋值, 结果:no
- var a = []; 结果:yes (object)
- var a= {}; 结果:yes(object)
- var a = 0; 结果:yes(number)
- var a = “”;结果:yes(string)
- var a = null;结果:yes(object)
- var a= undefined; 结果:no
三. 总结
用以下方法判断变量是否不为空
若a未声明if(a)报错,因此需要先typeof(a)
* 非数组
if (typeof a != “undefined” && a) {
….
}
* 数组
if (typeof a != “undefined” && a && a.length > 0) {
….
}