好吧,我的问题很明显,
示例:
用默认值undefined
定义a
:
var a;
如果我想检查 a
var是否存在,我将尝试以下操作:
但是在这种情况下,a
确实存在,a
值为undefined
,但是在boolean evaluation
中,这是false
。
var a; // default value is 'undefined'
if (a) {
alert('a exists');
} else {
alert("a don't exists")
}
我也可以尝试以下示例:但是此示例会生成错误。
// var a;
// a is not defined
if (a) {
alert('a exists');
} else {
alert("a don't exists")
}
在此示例中,我尝试使用typeof
。但是a
默认用undefined
值定义。
var a;
if (typeof a != 'undefined') {
alert('a exists');
} else {
alert("a don't exists")
}
和在此示例中
console.log ('var a exists:', window.hasOwnProperty('a'));
验证是否真正存在变量的最佳方法是什么?
谢谢。
js中有三种不同的可能性。
- 变量'a'根本没有声明;
- 变量" a"已声明,但未分配(未定义)。例如:
var a;
- 变量'a'已声明,但用空或空分配。(可能的情况,如果一个试图从后端获取值的变量)
前任:var a=null; var a='';
如果您期望在变量中有一个值,则除了0或false以外,最好使用以下条件。当然,这一切都是基于您的需求,如果您不确定变量或对象值,请始终将它们包装在try&捕获块。
//var a;
//var a=null;
//var a='';
//var a=0;
//var a='value';
if (typeof a != "undefined" && a) {
alert("a is defined AND a is TRUE value");
} else {
alert("a not exist OR a is a FALSE value");
}