检查JavaScript中是否存在变量的最佳方法



好吧,我的问题很明显,

示例:

用默认值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中有三种不同的可能性。

  1. 变量'a'根本没有声明;
  2. 变量" a"已声明,但未分配(未定义)。例如:var a;
  3. 变量'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");
}

相关内容

  • 没有找到相关文章

最新更新