如何检查变量是未定义的(已声明但未赋值)还是未声明的(不存在)
How do i check if variable is undefined (declared but not assigned a value) vs undeclared (doesn't exist)?
两者都会导致"undefined"
。。。例如
var a;
typeof blablabl; //"undefined";
typeof a; //"undefined";
检查变量是否未定义或变量是否尚未声明的默认方法是什么;
var a = a || 3;
仅当作用域中已存在变量时才有效。
刚刚测试了我的建议,似乎有效:
"use strict";
try {
b = 3;
} catch(e) {
console.log("Caught it:", e);
// Caught it: ReferenceError: assignment to undeclared variable b
}
如果可以硬编码变量名,则可以测试某些变量(例如b
)的初始化,而无需按照以下方式修改其值,
(function () {
"use strict";
var foo;
try {
foo = b;
console.log('b', ' is initialised');
} catch(e) {
if (e instanceof ReferenceError)
console.log('b', ' is not initialised');
}
}());
还要注意,以下没有抛出错误
(function () {
"use strict";
var foo;
var foo;
}());
因此,如果您"不确定",请再次var
。
(a==未定义)将返回true。
如果a尚未定义或a等于null,则(a==undefined)将返回true。
如果你想检查变量是否存在,你可以检查这个范围(如果适用):
var exists=(this.hasOwnProperty('a'))?'a存在于当前作用域":"a不存在";
相关文章:
- 未设置变量的赋值| jQuery的作用是什么
- 错误:与指令一起使用的表达式“未定义”不可赋值
- 未捕获的ReferenceError:赋值中的左侧无效
- Javascript值未定义,函数在赋值后运行
- Javascript/Html 未捕获的引用错误:赋值中的左侧无效;未捕获的引用错误:未定义计算
- 即使在赋值后$scope变量也未定义
- 变量“this”上下文在重新赋值变量后未更新
- 在 JavaScript 中,未声明的变量赋值可以在函数范围之外访问
- 未捕获的引用错误:赋值(匿名函数)中的左侧无效
- 我可以预先声明变量来解构对象的赋值吗?
- 使用javascript在select标记内未赋值
- 变量在赋值AngularJS之后未定义
- JavaScript变量在被赋值时显示为未定义
- 在JavaScript中通过赋值声明变量类型的好处
- Jquery对象赋值给变量返回未定义
- 是对HTMLElement#样式的未定义属性的赋值的返回值,保证与赋值相同
- JavaScript:未定义的值赋值
- 如何检查变量是未定义的(已声明但未赋值)还是未声明的(不存在)
- 为什么javascript在删除时区分带有或不带有声明的赋值
- “赋值到未声明的变量”时,使用 “for (i=0; .)".