Получение переменной, если известно ее имя (как строка)

Допустим, есть
var x = 123;
var y=321;
А в html есть 2 радиокнопки name='var' с value='x' и с value='y'Можно ли, например, вывести значение переменной, имя которое задано в value инпута?Аналог в php:
$k='x';
echo $$k;
P.S. if-else и switch-case не предлагать
3 ответа

Если переменная «глобальная», то можно использовать объект window.
var x = 3;
alert(window['x']);
Но вообще сама затея какая-то сомнительная.


Но вообще сама затея какая-то сомнительная.
Почему?


nokados, потому что проще и логичнее засунуть эти значения в объект и использовать его. При этом этот объект может быть и в локальном скопе, в отличие от решения с window.Пример:
<!DOCTYPE html>
<html>
 
  <head>
    <meta charset="utf-8" />
    <title>Sample</title>
    
    <script>
      HTMLCollection.prototype.forEach = NodeList.prototype.forEach = Array.prototype.forEach;
    
      var data = {
        x: 321,
        y: 123
      };
      
      window.onload = function () {
        document.getElementsByClassName('radio').forEach(function (elem) {
          elem.onclick = function () {
            alert(elem.value + ' = ' + data[elem.value]);
          };
        });
      };
    </script>
  </head>
    
  <body>
    <input class="radio" type="radio" name="option" value="x" />x
    <input class="radio" type="radio" name="option" value="y" />y
  </body>
 
</html>
Связь же «глобальных переменных» и объекта window не очевидна.