javascript中的eval方法
如果你有这样的东西javascript中的eval方法,javascript,jquery,arrays,Javascript,Jquery,Arrays,如果你有这样的东西 var x='y'; var z='x'; 如果我们想从z得到x(即y)的值,我们可以这样实现 var x='y'; var z='x'; eval(z)会给你“y” 我的问题是,如果x是像 var x=[a,b,c]; var z='x'; 如何使用变量z获取x数组值,如x[0],x[1],x[2] 我们不能使用likeeval(z[0]),如果我们给出likeeval[z]我们将得到like[a,b,c],但我想直接访问单个数组元素。实现这一点的方法是什么 请帮忙
var x='y';
var z='x';
如果我们想从z得到x(即y)的值,我们可以这样实现
var x='y';
var z='x';
eval(z)会给你“y”
我的问题是,如果x是像
var x=[a,b,c];
var z='x';
如何使用变量z获取x数组值,如x[0],x[1],x[2]
我们不能使用likeeval(z[0])
,如果我们给出likeeval[z]
我们将得到like[a,b,c]
,但我想直接访问单个数组元素。实现这一点的方法是什么
请帮忙
提前感谢。您可以使用Windows
window[z][0]
如果
x
是全局的,您可以使用窗口
:
window[z][0] === a; // true
…但前提是x
是全局的,坦白说,这在任何情况下都不是一个好主意
要对非全局对象执行此操作,请在对象上放置x
:
var obj = {x: [a, b, c]};
…然后使用obj
:
obj[z][0] === a; // true
在这两种情况下,这都有效,因为您可以使用“点表示法”和文字属性名称(foo.bar
)或“括号表示法”和字符串属性名称(foo[“bar”]
)访问JavaScript中的对象属性。在第二种情况下,可以使用字符串的任何表达式
window
适用于全局变量的原因是,在JavaScript中,所有全局变量都是全局对象的属性,在浏览器上,您可以使用符号window
引用该全局对象。(事实上,window
本身是全局对象的属性,对象使用它来引用自身。)只需使用eval(z)[0]
。
在执行求值步骤之后,而不是之前,就有了一个数组。因此,
z[0]
并没有真正定义。只有在eval
之后才能通过索引进行访问
尝试: