Если это глобальная переменная, вы можете искать ее по имени в глобальном объекте, поскольку глобальные переменные являются свойствами глобального объекта. В браузерах есть глобальная переменная, которая ссылается на глобальный объект с именем window
, поэтому:
var name = "foo";
window.foo = 42;
alert(Number(window[name])); // 42
Но глобальные переменные - это плохо (тм) .
Чтобы сделать это без глобалов, используйте свой собственный объект:
var name = "foo";
var obj = {};
obj.foo = 42;
alert(Number(obj[name])); // 42
Оба из вышеперечисленных работают, потому что в JavaScript вы можете ссылаться на свойство объекта либо с точечной нотацией и литералом (obj.foo
), либо с нотацией в скобках и строкой (obj["foo"]
), а в последнем случае строка может быть результатом любого выражения, включая поиск переменной.