首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查Javascript中是否存在变量的最佳方法?

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

Stack Overflow用户
提问于 2016-12-07 17:53:55
回答 1查看 9.5K关注 0票数 1

我的问题很明显,

示例:

用默认值a定义undefined

代码语言:javascript
复制
var a;

如果我想检查a变量是否存在,我将尝试使用:

但是在本例中,a确实存在,而a值是undefined,但在boolean evaluation中这是false。

​

代码语言:javascript
复制
var a; // default value is 'undefined'
if (a) {
    alert('a exists');
} else {
    alert("a don't exists")
}

​

我也可以尝试使用以下示例:但是这个示例会生成一个错误。

​

代码语言:javascript
复制
// var a;
// a is not defined
if (a) {
    alert('a exists');
} else {
    alert("a don't exists")
}

​

在这个例子中,我尝试使用typeof。但默认情况下,a是用undefined值定义的。

​

代码语言:javascript
复制
var a;
if (typeof a != 'undefined') {
    alert('a exists');
} else {
    alert("a don't exists")
}

​

在这个例子中

​

代码语言:javascript
复制
console.log ('var a exists:', window.hasOwnProperty('a'));

​

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

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-06-07 21:02:16

对于变量,JS中有三种不同的可能性。

  1. 变量'a‘根本没有声明;
  2. 变量'a‘已声明,但未赋值(未定义)。例:var a;
  3. 变量'a‘已声明,但赋值为空或空。(可能的情况是,如果变量试图从后端获取值) 例:var a=null; var a='';

如果您期望变量中有一个值,而不是0或false,那么最好使用以下条件。当然,这完全是基于您的需要,如果您不确定变量或对象值,请始终将它们括在try & catch块中。

​

代码语言:javascript
复制
//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");
}

​

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41024149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档