É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";
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
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!