嗯,我的问题很明显,
示例:
使用默认值a
定义undefined
:
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'));

验证变量是否实际存在的最佳方法是什么?为什么?
感谢。
答案 0 :(得分:3)
JS中有三种不同的可能性。
var 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");
}