繁体   English   中英

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

[英]Best way to check if a variable exists in Javascript?

好吧,我的问题很明显,

例:

使用默认值undefined定义a

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')); 

验证变量实际存在的最佳方法是什么?为什么?

谢谢。

JS中有一个变量有三种不同的可能性。

  1. 变量'a'根本没有声明;
  2. 变量'a'已声明,但未分配(未定义)。 例如: var a;
  3. 变量'a'声明,但分配为空或null。 (可能的情况,如果变量试图从后端获取值)
    例如: var a=null; 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"); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM