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.

MDN JavaScript-referens

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.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow