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.

Référence JavaScript MDN

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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow