Maison > interface Web > js tutoriel > Comment pouvez-vous évaluer en toute sécurité des formules de chaînes en JavaScript sans utiliser Eval() ?

Comment pouvez-vous évaluer en toute sécurité des formules de chaînes en JavaScript sans utiliser Eval() ?

Susan Sarandon
Libérer: 2024-11-13 08:00:02
original
241 Les gens l'ont consulté

How Can You Safely Evaluate String Formulas in JavaScript Without Using Eval()?

Évaluer les valeurs de chaîne en JavaScript sans Eval

La fonction eval() en JavaScript présente des risques de sécurité et peut conduire à une injection de code. Pour éviter ces problèmes, il est recommandé d'explorer des méthodes alternatives pour évaluer les chaînes de formule.

L'une de ces alternatives est le constructeur Function(), qui peut évaluer une chaîne de code et renvoyer le résultat. Par exemple, considérons la formule de chaîne suivante :

var apa = "12/5*9+9.4*2";
Copier après la connexion

Au lieu d'utiliser eval(apa), vous pouvez utiliser le constructeur Function() pour créer une nouvelle fonction qui représente la formule :

function evil(fn) {
  return new Function('return ' + fn)();
}

console.log(evil('12/5*9+9.4*2')); // => 40.4
Copier après la connexion

Le constructeur Function() prend une chaîne de code comme argument et renvoie un objet fonction. L'instruction return dans la chaîne garantit que le résultat de la formule est renvoyé. La fonction console.log() affiche ensuite le résultat évalué.

L'utilisation du constructeur Function() est une alternative plus sûre à eval() car il n'exécute pas de code arbitraire à partir d'une chaîne. Il fournit un moyen plus contrôlé et prévisible d'évaluer les expressions de chaîne en JavaScript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal