Szukaj…


Wprowadzenie

W JavaScript funkcja eval ocenia ciąg znaków tak, jakby był kodem JavaScript. Zwracana wartość jest wynikiem obliczonego ciągu, np. eval('2 + 2') zwraca 4 .

eval jest dostępny w zasięgu globalnym. Zakres leksykalny oceny jest zasięgiem lokalnym, chyba że jest wywoływany pośrednio (np. var geval = eval; geval(s); ).

Korzystanie z eval jest zdecydowanie odradzane. Szczegółowe informacje zawiera sekcja Uwagi.

Składnia

  • eval (ciąg);

Parametry

Parametr Detale
strunowy JavaScript do oceny.

Uwagi

Używanie eval jest zdecydowanie odradzane; w wielu scenariuszach stanowi lukę w zabezpieczeniach.

eval () to niebezpieczna funkcja, która wykonuje przekazany kod z uprawnieniami osoby wywołującej. Jeśli uruchomisz eval () z ciągiem, na który złośliwy podmiot może mieć wpływ, możesz skończyć z uruchomieniem złośliwego kodu na komputerze użytkownika z uprawnieniami strony / rozszerzenia. Co ważniejsze, kod innej firmy może zobaczyć zakres, w którym wywołano funkcję eval (), co może prowadzić do możliwych ataków w sposób, na który podobna funkcja nie jest podatna.

Dokumentacja JavaScript MDN

Do tego:

Wprowadzenie

Zawsze możesz uruchamiać JavaScript od wewnątrz, chociaż jest to zdecydowanie odradzane ze względu na występujące w nim luki w zabezpieczeniach (szczegółowe informacje znajdują się w uwagach).

Aby uruchomić JavaScript z poziomu JavaScript, wystarczy użyć poniższej funkcji:

eval("var a = 'Hello, World!'");

Ocena i matematyka

Możesz ustawić zmienną na coś za pomocą funkcji eval() , używając czegoś podobnego do poniższego kodu:

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;

Wynik zapisany w zmiennej res będzie:

200
4
27

Korzystanie z eval jest zdecydowanie odradzane. Szczegółowe informacje zawiera sekcja Uwagi.

Oceń ciąg instrukcji JavaScript

var x = 5;
var str = "if (x == 5) {console.log('z is 42'); z = 42;} else z = 0; ";

console.log("z is ", eval(str));

Korzystanie z eval jest zdecydowanie odradzane. Szczegółowe informacje zawiera sekcja Uwagi.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow