Maison > interface Web > js tutoriel > Comment évaluer en toute sécurité des expressions mathématiques en JavaScript sans utiliser « eval() » ?

Comment évaluer en toute sécurité des expressions mathématiques en JavaScript sans utiliser « eval() » ?

DDD
Libérer: 2024-12-08 08:27:14
original
274 Les gens l'ont consulté

How to Safely Evaluate Mathematical Expressions in JavaScript Without Using `eval()`?

Évaluer des expressions mathématiques en JavaScript sans utiliser Eval()

Évaluer des expressions mathématiques sans recourir à la fonction eval() potentiellement dangereuse est une pratique courante tâche en programmation JavaScript. Pour résoudre ce problème, explorons quelques solutions alternatives.

JavaScript Expression Evaluator

La bibliothèque JavaScript Expression Evaluator fournit un moyen pratique d'analyser et d'évaluer des expressions mathématiques. Il vous permet de spécifier des chaînes d'expression et d'utiliser des variables pour personnaliser l'évaluation. Par exemple, le code suivant évalue l'expression "2 ^ x" avec x égal à 3 :

const result = Parser.evaluate("2 ^ x", { x: 3 });
Copier après la connexion

Math.js

Math.js est un autre populaire Bibliothèque JavaScript pour les opérations mathématiques. Il comprend un analyseur d'expressions puissant qui prend en charge un large éventail de fonctions mathématiques. Comme l'évaluateur d'expressions JavaScript, il vous permet de transmettre des variables et d'évaluer des expressions de manière dynamique :

const result = math.eval('sin(45 deg) ^ 2');
Copier après la connexion

Recommandation de l'utilisateur

Un autre utilisateur a suggéré une réponse sur Stack Overflow qui utilise la fonction evalx() pour évaluer les expressions mathématiques en toute sécurité. Voici un extrait de cette réponse :

function evalx(expr, scope) {
  return Function(`'use strict'; return (${expr})`)()(...scope);
}
Copier après la connexion

En appelant la fonction evalx(), vous pouvez évaluer des expressions sans les risques de sécurité associés à eval().

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal