假设我有一个变量var s0="Hello",var s1="Bye"
,我有
for(var i = 0; i < 1; i++) {console.log("s"+i);}
如何访问这些字符串(s0和s1)以进行打印?
答案 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}}