如果使用Javascript未定义变量,则定义变量

时间:2012-03-29 08:19:22

标签: javascript variables undefined

如果未定义,如何在Javascript中定义变量。我试过了:

var str = "answer";
if(eval(str) == undefined)
   eval("var " + str + " = {}");
alert(answer);

但显示错误: ReferenceError:未定义答案

4 个答案:

答案 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';
}