Zoeken…
Invoering
In JavaScript evalueert de eval
functie een tekenreeks alsof het JavaScript-code is. De retourwaarde is het resultaat van de geëvalueerde tekenreeks, bijv. eval('2 + 2')
retourneert 4
.
eval
is beschikbaar in de wereldwijde scope. Het lexicale bereik van de evaluatie is het lokale bereik, tenzij indirect aangeroepen (bijvoorbeeld var geval = eval; geval(s);
).
Het gebruik van eval
wordt sterk afgeraden. Zie het gedeelte Opmerkingen voor meer informatie.
Syntaxis
- eval (tekenreeks);
parameters
Parameter | Details |
---|---|
draad | Het te evalueren JavaScript. |
Opmerkingen
Het gebruik van eval
wordt sterk afgeraden; in veel scenario's vormt het een beveiligingsprobleem.
eval () is een gevaarlijke functie, die de code uitvoert met de rechten van de beller. Als u eval () uitvoert met een tekenreeks die kan worden beïnvloed door een kwaadwillende partij, kunt u schadelijke code uitvoeren op de computer van de gebruiker met de machtigingen van uw webpagina / extensie. Wat nog belangrijker is, de code van derden kan de reikwijdte zien waarin eval () is aangeroepen, wat kan leiden tot mogelijke aanvallen op manieren waarop de vergelijkbare functie niet vatbaar is.
Bovendien:
Invoering
U kunt JavaScript altijd van binnenuit uitvoeren, hoewel dit ten zeerste wordt afgeraden vanwege de beveiligingsproblemen die het met zich meebrengt (zie Opmerkingen voor meer informatie).
Gebruik de onderstaande functie om JavaScript vanuit JavaScript te starten:
eval("var a = 'Hello, World!'");
Evaluatie en wiskunde
U kunt een variabele instellen op iets met de functie eval()
door iets te gebruiken dat lijkt op de onderstaande code:
var x = 10;
var y = 20;
var a = eval("x * y") + "<br>";
var b = eval("2 + 2") + "<br>";
var c = eval("x + 17") + "<br>";
var res = a + b + c;
Het resultaat, opgeslagen in de variabele res
, is:
200
4
27
Het gebruik van eval
wordt sterk afgeraden. Zie het gedeelte Opmerkingen voor meer informatie.
Evalueer een reeks JavaScript-instructies
var x = 5;
var str = "if (x == 5) {console.log('z is 42'); z = 42;} else z = 0; ";
console.log("z is ", eval(str));
Het gebruik van eval
wordt sterk afgeraden. Zie het gedeelte Opmerkingen voor meer informatie.