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
Libérer: 2024-11-20 02:46:01
original
531 Les gens l'ont consulté

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
Copier après la connexion

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!

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