在javascript中连接以访问全局预定义的变量?

时间:2018-05-14 23:22:26

标签: javascript

假设我有一个变量var s0="Hello",var s1="Bye",我有

for(var i = 0; i < 1; i++) {console.log("s"+i);}

如何访问这些字符串(s0和s1)以进行打印?

3 个答案:

答案 0 :(得分:2)

对于全局级变量:

for(var i = 0; i < 1; i++) {console.log(window["s"+i]);}

对于局部变量:

for(var i = 0; i < 1; i++) {console.log(eval("s"+i));}

答案 1 :(得分:2)

如果您打算以这种方式访问​​变量列表,您应该将它们存储在这样的数组中

s = ["Hello", "Bye"];
for(var i = 0; i < 1; i++) {console.log(s[i]);}

这是正确的方法,你应该在这里停止阅读。

但....因为javascript很奇怪,所以可以访问&#34; global&#34;通过像这样的字符串直接附加到窗口的变量

s0 = "Hello"
s1 = "Bye"

for(var i = 0; i < 1; i++) {console.log(window["s"+i]);}

基本上你是通过window["s0"]访问窗口上的变量。 "s" + i语句变为"s0""s1",因为javascript很奇怪,在字符串中添加数字会产生字符串。

不要这样做。坚持原创上述方法

答案 2 :(得分:0)

您可以使用eval函数来执行动态构造的代码,如字符串:

{{1}}