如何显示另一个变量的值?

时间:2012-12-18 08:44:27

标签: javascript

var foo = "bar"
var bar  = "realvalue";

是否可以使用bar打印foo的值?

8 个答案:

答案 0 :(得分:44)

方法1:全局变量

var foo = "bar";
var bar  = "realvalue";
alert(window[foo]);

OR

方法2:命名空间
将您的js划分为名称空间

var namespace = {
 foo : "bar",
 bar : "realvalue"
};
alert(namespace[namespace.foo]);

答案 1 :(得分:17)

是的,您可以使用eval

执行此类操作
var foo = "bar";
var bar  = "realvalue";
alert(eval(foo));

编辑:似乎很多人反对使用eval()函数。我在使用之前的建议是阅读这个问题:Why is using the JavaScript eval function a bad idea?

然后,一旦您了解了您可以自行决定的风险,如果您想使用它。

答案 2 :(得分:14)

如果它是全局变量,您可以使用window[foo]

答案 3 :(得分:10)

不要使用非全局变量来执行这种构造,只需要调整您可能会浮动的任何变量。

var myscope = {
    bar: 'realvalue'
},
foo = 'bar';

alert(myscope[foo]);

顺便说一句,上面的内容并不依赖于浏览器的默认行为,也可以在window对象中注册全局变量,使其适用于Node.js等。

答案 4 :(得分:2)

全局变量在window对象上定义,因此您可以使用:

var bar = "realvalue";
alert(window["bar"]);

答案 5 :(得分:2)

var foo = "bar";
var bar  = "realvalue";
foo=bar;
console.log(foo);
alert(foo);

答案 6 :(得分:1)

 var foo = "bar";
 var bar  = "realvalue";
 alert(eval(foo));

答案 7 :(得分:0)

是的,通过eval。但不幸的是,并非evalbad idea即可使用。