Maison >interface Web >js tutoriel >Puis-je évaluer des expressions de chaîne en JavaScript sans utiliser eval() ?

Puis-je évaluer des expressions de chaîne en JavaScript sans utiliser eval() ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-20 02:46:01532parcourir

Can I Evaluate String Expressions in JavaScript Without Using eval()?

Évaluer des expressions de chaîne en JavaScript sans Eval()

Problème :

En JavaScript, la fonction eval() est couramment utilisé pour évaluer des chaînes contenant des extraits de code. Cependant, cela peut poser des risques de sécurité et des problèmes de performances. Existe-t-il un autre moyen de calculer la valeur d'une formule stockée dans une chaîne sans utiliser eval() ?

Réponse :

Oui, une alternative sécurisée et performante est en utilisant le constructeur Function(). Voici comment cela fonctionne :

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

console.log(evil('12/5*9+9.4*2')); // => 40.4

Explication :

  • La fonction evil() prend une chaîne fn représentant une expression JavaScript.
  • Il ajoute 'return' à la chaîne, créant ainsi une fonction qui renvoie la valeur de l'expression.
  • Le nouveau constructeur Function() crée une fonction à partir de la chaîne modifiée et l'exécute.
  • Le résultat renvoyé est la valeur calculée de l'expression.

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!

Déclaration:
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