为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript中的“变量”变量?

Javascript中的“变量”变量?

慕莱坞森 2019-05-24 14:55:04
Javascript中的“变量”变量?我知道PHP中可能有“变量”变量。例如$x = "variable";$$x = "hello, world!";echo $variable; // displays "hello, world!"是否可以在javascript中将变量的名称引用为字符串?怎么做?
查看完整描述

4 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

对此没有单一的解决方案(嗯,有eval,但不要认真考虑)。可以通过动态访问某些全局变量window,但这对于函数本地变量不起作用。成为属性的全局变量是windowlet和定义的变量const,以及classes。

几乎总是比使用变量变量更好的解决方案!相反,您应该查看数据结构并为您的问题选择正确的数据结构

如果你有一组固定的名字,比如

// BAD

var foo = 42;

var bar = 21;


var key = 'foo';

console.log(eval(key));

将这些名称/值存储为对象的属性,并使用括号表示法动态查找它们:


// GOOD

var obj = {

  foo: 42,

  bar: 21,

};


var key = 'foo';

console.log(obj[key]);

在ES2015 +中,使用简洁的属性表示法为现有变量执行此操作更加容易:


// GOOD

var foo = 42;

var bar = 21;

var obj = {foo, bar};


var key = 'foo';

console.log(obj[key]);

如果你有“连续”编号的变量,例如


// BAD

var foo1 = 'foo';

var foo2 = 'bar';

var foo3 = 'baz';


var index = 1;

console.log(eval('foo' + index));

然后你应该使用数组而只是使用索引来访问相应的值:


// GOOD

var foos = ['foo', 'bar', 'baz'];

var index = 1;

console.log(foos[index - 1]);


查看完整回答
反对 回复 2019-05-24
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

要在javascript中仅使用字符串引用变量,您可以使用

window['your_variable_name']

您也可以在变量中设置和引用变量和对象。


查看完整回答
反对 回复 2019-05-24
  • 4 回答
  • 0 关注
  • 634 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信