Variables "variables" en JavaScript

Je sais qu'il est possible en PHP d'avoir des variables "variables". Par example,

$x = "variable";
$$x = "Hello, World!";
echo $variable; // Displays "Hello, World!"

Est-il possible de faire référence à une variable par son nom en tant que chaîne en JavaScript ? Comment serait-ce fait?


Solution du problème

tl;dr : N'utilisez paseval !

Il n'y a pas de solution unique pour cela. Il est possible d'accéder dynamiquement à certaines variables globales via window, mais cela ne fonctionne pas pour les variables locales à une fonction. Les variables globales qui ne deviennent pas une propriété de windowsont des variables définies avec letet const, et classes.

Il y a presque toujours une meilleure solution que d'utiliser des variables variables ! Au lieu de cela, vous devriez regarder les structures de données et choisir celle qui convient à votre problème.

Si vous avez un ensemble fixe de noms, tels que


// BAD - DON'T DO THIS!!!
var foo = 42;
var bar = 21;
var key = 'foo';
console.log(eval(key));

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"