Évaluer des chaînes contenant des formules est une tâche courante en programmation. Bien que JavaScript propose la fonction eval() à ces fins, elle présente des risques de sécurité et est généralement déconseillée. Voici une approche alternative pour calculer les valeurs de chaîne sans utiliser eval().
Le constructeur Function() peut créer des fonctions anonymes à partir de chaînes. Cela peut être utilisé pour évaluer des expressions de chaîne. Par exemple, considérons le code suivant :
function evil(fn) { return new Function('return ' + fn)(); } console.log(evil('12/5*9+9.4*2')); // => 40.4
En renvoyant une nouvelle fonction évaluée par le constructeur Function(), nous pouvons exécuter des opérations mathématiques stockées dans des chaînes. Dans cet exemple, la chaîne "12/5*9 9.4*2" est évaluée à 40.4.
Par rapport à eval(), le constructeur Function() permet :
Alors que le constructeur Function() offre une alternative plus sécurisée et fiable à eval(), il est important de noter qu'il évalue toujours le code de manière dynamique, des précautions doivent donc être prises pour éviter les entrées malveillantes.
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!