Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JavaScript中的第二个变量获取名为的变量的值_Javascript_Variables - Fatal编程技术网

从JavaScript中的第二个变量获取名为的变量的值

从JavaScript中的第二个变量获取名为的变量的值,javascript,variables,Javascript,Variables,我需要从第二个变量分配一个变量名,然后在JavaScript中警告第一个变量的值 下面是我试图实现的一个例子 window.foo=0; window.bar="window.foo"; //want to set an alert for window.bar in a way that returns 0 alert(window.bar); //returns window.foo alert(Number(window.bar)); //returns window.NaN 在上面的

我需要从第二个变量分配一个变量名,然后在JavaScript中警告第一个变量的值

下面是我试图实现的一个例子

window.foo=0;
window.bar="window.foo";

//want to set an alert for window.bar in a way that returns 0
alert(window.bar); //returns window.foo
alert(Number(window.bar)); //returns window.NaN

在上面的示例中,我希望警告值0。这将如何实现?谢谢。

如果它们是全局变量(就像它们一样),在
窗口中查找时,您可以简单地使用
“foo”
而不是
“window.foo”

var name = "foo";
window.foo = 0;
alert(Number(window[name])); // 0;
但全局变量是一件坏事(tm)

要在没有全局对象的情况下执行此操作,请使用您自己的对象:

var name = "foo";
var obj = {};
obj.foo = 0;
alert(Number(obj[name])); // 0;

上述两种方法都可以使用,因为在JavaScript中,可以使用点符号和文字(
obj.foo
)引用对象属性,也可以使用括号符号和字符串(
obj[“foo”]
),在后一种情况下,字符串可以是任何表达式的结果,包括变量查找。

删除window.foo周围的双引号。window.bar=window.foo.Number(0)没有任何意义。你想做什么?一个可以使用OP的原始结构,依靠被鄙视的
eval
功能:
alert(Number(eval(window.bar))@TedHopp:什么?对不起,我从没听说过-谢谢你,这回答了我的问题。我很感激其他的回答,因为他们给了我一些关于更好的编程方法的进一步澄清。