js如何判断变量空值

判断变量是否存在是项目中是经常遇到的问题,list如下:

1,a存在,但a无值

var a;
alert(typeof a === ‘undefined’);//true
alert(a == undefined);//true
alert(a === undefined);//true
alert(a == null);//true
alert(a === null);//false

2,a不存在

alert(typeof a === ‘undefined’);//true
alert(a == undefined);//error
alert(a === undefined);//error
alert(a == null);//error
alert(a === null);//error

3,a存在,但a是一个占位符null

var a = null;
alert(typeof a === ‘undefined’);//false
alert(a == undefined);//true
alert(a === undefined);//false
alert(a == null);//true
alert(a === null);//true

需要根据不同场景选择不同的判断方法,常用的是在函数中,判断实参是否正确的传递进来,通常会用null作为参数的占位符,这里就需要这样判断:

if(typeof a === ‘undefined’ || a === null )alert(‘a值出错’);

yui也提供了这两种方法

Y.Lang.isUndefined(a);

Y.Lang.isNull(a);

但是Y.Lang.isUndefined(a);会有问题,如果a真的不存在会报错。

posted at