判断变量是否存在是项目中是经常遇到的问题,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真的不存在会报错。