如果未定义,如何在Javascript中定义变量。我试过了:
var str = "answer";
if(eval(str) == undefined)
eval("var " + str + " = {}");
alert(answer);
但显示错误: ReferenceError:未定义答案
答案 0 :(得分:7)
如果你必须使用javascript变量中的名称(事先不知道),那么你可以这样做:
var str = "answer";
if (typeof window[str] == "undefined") {
window[str] = {};
}
这使用了以下事实:所有全局变量都是窗口对象的属性(在浏览器中)。
如果您提前知道变量的名称,那么您可以这样做:
var answer = answer || {};
答案 1 :(得分:1)
if (typeof answer == "undefined") var answer = {};
Eval在不同的上下文中执行。
答案 2 :(得分:0)
if(someUndefinedVariable === undefined){
var someUndefinedVariable = 'whatever you want'
}
alert(someUndefinedVariable) //obviously not undefined anymore
或者如果您在编写代码时不知道变量名称
var propertyName = 'answer'; //could be generated during runtime
if(window[propertyName] === undefined){
var window[propertyName] = 'whatever you want';
}
alert(window[propertyName]);
答案 3 :(得分:0)
您应该将typeof
与===
运算符和'undefined'
一起使用(以确保没有人覆盖未定义的变量)以检查变量是否未定义,以及何时为其赋值:
if (typeof answer === 'undefined') {
var answer = 'Foo bar';
}