您的位置:首页 > Web前端 > JavaScript

javascript 变量值为undefined时如何做判断

2015-12-02 12:56 387 查看
/*

总结:
1.使用值为 undefined 的变量作判断时需要【使用typeof】 来做判断 才能保证不报错如下:
if (typeof b == 'undifined')

2.如果判断的是一个数组或对象需要 【每一级都使用typeof】来做判断 才能保证不报错 如下:
if (typeof c != 'undefined' && typeof c['b'] != 'undefined' && typeof c['b']['a'] != 'undefined')
	
3.javascript中字符串0的值为true,而非其他语言(如php)中为true
	
*/

//正确写法
alert(Boolean('0')); //true
alert(Boolean(0)); //false
alert(Boolean({})); //true
alert(Boolean('')); //false
alert(Boolean(null)); //false
alert(Boolean(undefined)); //false

//正确写法 虽然这样不报错但这样写基本没什么用
if(!undefined){
	alert('111');
}

//正确写法
if (typeof b == 'undifined') {
	alert('333');
}

//错误写法 会报错 ReferenceError: b is not defined 一个值为 undefined 的变是不能用做判断
alert(Boolean(b)); // 
if (b == undifined) {
	alert('333');
}

//判断数组-----------------------
var a = [];
alert(Boolean(a)); //true
alert(Boolean([])); //true
alert(a[1]);//undefined
alert(Boolean(a[1])); //false

//正确写法
if (typeof a != 'undefined' && typeof a[1] != 'undefined' && typeof a[1][2] != 'undefined') {
	alert(22);
} else {
	alert(33);
}

//错误写法 会报错 TypeError: a[1] is undefined 原因:a虽有定义 但a[1]的值为undefined 所以a[1][2]报错 会影响下面的代码执行
alert(Boolean(a[1][2])); 
if (typeof a != 'undefined' && typeof a[1][2] != 'undefined') {
	alert(22);
} else {
	alert(33);
}

//判断对象-----------------------

//正确写法
alert(Boolean(c)); //true
alert(typeof c);//object
alert(Boolean(c['b'])); //false
alert(typeof c['b']);//undefined
alert(typeof c.b);//undefined
if (typeof c != 'undefined' && typeof c['b'] != 'undefined' && typeof c['b']['a'] != 'undefined') {
	alert('1');
} else {
	alert('2');
}

//错误写法 会报错 TypeError: c.b is undefined
alert(Boolean(c['b']['c'])); //会报错 TypeError: c.b is undefined
if (typeof c != 'undefined' && typeof c['b']['a'] != 'undefined') {
	alert('1');
} else {
	alert('2');
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: