Get global variable dynamically by name string in JavaScript

Viewed 81992
<script>
//in one script
var someVarName_10 = 20;
</script>

I want to get access to this variable from another script by name of variable. With window object its simple, is it possible with local variable?

I mean access this var by code like this:

<script>
  alert(all_vars['someVar' + 'Name' + num]);
</script>
6 Answers

Do you want to do something like this?

<script>
//in one script
var someVarName_10 = 20;

alert(window["someVarName_10"]); //alert 20

</script>

Update: because OP edited the question.

<script>
  num=10;
  alert(window['someVar' + 'Name_' + num]); //alert 20
</script>

This is not my own answer, its Arthur Araújo's answer, but I think its relevent here.


Eval alternative:

exp = '1 + 1'
x = Function('return ' + exp)()
console.log(x)

If this is what you said:

<script type="text/javascript">
var hello = 'test';
</script>
<script type="text/javascript">
  alert (hello);
</script>

It works because script are finally available to the document and you can access their vars.

Related