Recherche…
Introduction
En JavaScript, la fonction eval
évalue une chaîne comme s'il s'agissait de code JavaScript. La valeur de retour est le résultat de la chaîne évaluée, par exemple, eval('2 + 2')
renvoie 4
.
eval
est disponible dans le monde entier. La portée lexicale de l'évaluation est la portée locale, sauf si elle est invoquée indirectement (par exemple, var geval = eval; geval(s);
).
L'utilisation de eval
est fortement déconseillée. Voir la section Remarques pour plus de détails.
Syntaxe
- eval (string);
Paramètres
Paramètre | Détails |
---|---|
chaîne | Le JavaScript à évaluer. |
Remarques
L'utilisation de eval
est fortement déconseillée. dans de nombreux scénarios, il présente une vulnérabilité de sécurité.
eval () est une fonction dangereuse qui exécute le code transmis avec les privilèges de l'appelant. Si vous exécutez eval () avec une chaîne susceptible d'être affectée par une partie malveillante, vous risquez de lancer du code malveillant sur la machine de l'utilisateur avec les autorisations de votre page Web / extension. Plus important encore, le code tiers peut voir la portée dans laquelle eval () a été invoqué, ce qui peut conduire à d’éventuelles attaques dont la fonction similaire n’est pas susceptible.
Aditionellement:
introduction
Vous pouvez toujours exécuter JavaScript depuis l'intérieur même si cela est fortement déconseillé en raison des failles de sécurité qu'il présente (voir Remarques pour plus de détails).
Pour exécuter JavaScript depuis JavaScript, utilisez simplement la fonction ci-dessous:
eval("var a = 'Hello, World!'");
Évaluation et mathématiques
Vous pouvez définir une variable avec quelque chose avec la fonction eval()
en utilisant quelque chose de similaire au code ci-dessous:
var x = 10;
var y = 20;
var a = eval("x * y") + "<br>";
var b = eval("2 + 2") + "<br>";
var c = eval("x + 17") + "<br>";
var res = a + b + c;
Le résultat, stocké dans la variable res
, sera:
200
4
27
L'utilisation de eval
est fortement déconseillée. Voir la section Remarques pour plus de détails.
Evaluez une chaîne d'instructions JavaScript
var x = 5;
var str = "if (x == 5) {console.log('z is 42'); z = 42;} else z = 0; ";
console.log("z is ", eval(str));
L'utilisation de eval
est fortement déconseillée. Voir la section Remarques pour plus de détails.