我的问题很明显,
示例:
用默认值a定义undefined
var a;如果我想检查a变量是否存在,我将尝试使用:
但是在本例中,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'));
验证变量是否实际存在的最佳方法是什么?为什么?
谢谢。
发布于 2017-06-07 21:02:16
对于变量,JS中有三种不同的可能性。
var a;var a=null; var a='';如果您期望变量中有一个值,而不是0或false,那么最好使用以下条件。当然,这完全是基于您的需要,如果您不确定变量或对象值,请始终将它们括在try & catch块中。
//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");
}
https://stackoverflow.com/questions/41024149
复制相似问题