Sök…
Introduktion
I JavaScript utvärderar eval
en sträng som om det var JavaScript-kod. Returvärdet är resultatet av den utvärderade strängen, t.ex. eval('2 + 2')
returnerar 4
.
eval
finns tillgängligt i det globala omfånget. Utvärderingens lexikala omfattning är det lokala omfånget om inte indirekt åberopas (t.ex. var geval = eval; geval(s);
).
Användningen av eval
avskräcks starkt. Se avsnittet Kommentarer för mer information.
Syntax
- eval (sträng);
parametrar
Parameter | detaljer |
---|---|
sträng | JavaScript som ska utvärderas. |
Anmärkningar
Användningen av eval
avskräcks starkt; i många scenarier presenterar det en säkerhetssårbarhet.
eval () är en farlig funktion som kör koden som den har skickat med anroparens privilegier. Om du kör eval () med en sträng som kan påverkas av en skadlig part, kan du köra skadlig kod på användarens maskin med behörigheterna på din webbsida / tillägg. Ännu viktigare är att tredjepartskod kan se omfattningen i vilken eval () åberopades, vilket kan leda till möjliga attacker på sätt som den liknande funktionen inte är mottaglig för.
Dessutom:
Introduktion
Du kan alltid köra JavaScript inifrån sig själv, även om detta är starkt avskräckt på grund av de säkerhetsproblem som den presenterar (se kommentarer för detaljer).
För att köra JavaScript inifrån JavaScript använder du bara funktionen nedan:
eval("var a = 'Hello, World!'");
Utvärdering och matematik
Du kan ställa in en variabel till något med eval()
genom att använda något som liknar koden nedan:
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;
Resultatet, lagrat i variabeln res
, kommer att vara:
200
4
27
Användningen av eval
avskräcks starkt. Se avsnittet Kommentarer för mer information.
Utvärdera en rad JavaScript-uttalanden
var x = 5;
var str = "if (x == 5) {console.log('z is 42'); z = 42;} else z = 0; ";
console.log("z is ", eval(str));
Användningen av eval
avskräcks starkt. Se avsnittet Kommentarer för mer information.