Javascript动态变量(添加了随机数)

时间:2016-05-18 20:24:21

标签: javascript variables random dynamic

如何在Javascript中创建动态变量?

例如,我有:



var myAwesomeText = "Hello World!"




但是现在我希望每次刷新页面时,变量MyAesomeText都会附加一个随机数。所以它看起来像这样:



var myAwesomeText12345 = "Hello World!"




最重要的是,如果将随机数分配给它后,如何调用新的随机变量? (即:警告(???);)

我尝试过这样的事情,但我在某个地方出错了。



var myRnd = Math.floor(Math.random()*100000);
var myVar = "MyAwesomeText" + myRnd;
str = myVar + ' = ' + '"Hello World!"';
eval(str);

alert(str);




3 个答案:

答案 0 :(得分:2)

您可以通过window对象访问变量:



var myRnd = Math.floor(Math.random()*100000);
var myVar = "MyAwesomeText" + myRnd;
window[myVar]  = "Hello World!";

alert(window[myVar]);




请勿使用eval:对于此问题,它速度较慢且完全没必要。如果你的MyAwesomeText中包含的字符在JavaScript代码中具有特殊含义,例如括号,分号,冒号,逗号,大括号等等,它也会产生意想不到的副作用。

请注意,符号object['prop']object.prop的结果相同。由于全局变量是在window对象中创建的,因此您可以通过window.myvariable表示法访问任何变量。

结合这两个事实,您可以访问动态名称为window[dynamicVariableName]的全局变量。

答案 1 :(得分:0)

eval是要走的路

var num = 10;
var string = "var a"+num +"= 'hi'"
string
// "var a10= 'hi'"
eval(string)
a10
// 'hi'

答案 2 :(得分:0)

你错过了警告上的一个评估

var myRnd = Math.floor(Math.random()*100000);
var myVar = "MyAwesomeText" + myRnd;
str = myVar + ' = ' + '"Hello World!"';
eval(str);

alert(eval(myVar));