Eval где используется?

143
17 октября 2018, 02:20

Зачем нужно использовать eval в JavaScript?

Answer 1

Метод для выполнения произвольного кода, может использовать переменные и свойства существующих объектов.

var str = "if (a) { 1 + 1 } else { 2 + 2 }";
var a = true;
var b = eval(str);
alert("b равно : " + b); // b равно : 2
// теперь поменяем "a"
a = false;
b = eval(str);
alert("b равно : " + b) // b равно : 4

Выполнение кода в eval может быть небезопасно. При таком выполнении затруднена отладка.

Ответ на вопрос же: не нужно его использовать.

eval:

  1. Требует компиляции, поэтому медленный.
  2. Вредоносный скрипт может найти доступ к eval как аргумент.
  3. Не красив =\
  4. Наследует контекст выполнения, и связан с областью, в которой его вызывает.

Пример использования: выполнения кода полученного с помощью XMLHttpRequest/ Ajax. У вас есть сервер и ваша страничка, вы не хотите обновлять страницу постоянно. Отправляете Ajax запрос к серверу, он возвращает код, выполняете, используя eval. Если взять стааарый пример с XMLHttpRequest, то как-то так:

function evalRequest(url) {
     var xmlhttp = new XMLHttpRequest();
     xmlhttp.onreadystatechange = function() {
          if (xmlhttp.readyState==4 && xmlhttp.status==200) {
               eval(xmlhttp.responseText);
          }
     }
     xmlhttp.open("GET", url, true);
     xmlhttp.send(null);
 }
READ ALSO
Как создать модальное окно на React Native?

Как создать модальное окно на React Native?

Получил задание нарисовать модальное окно на React NativeПосле изучения документации и примеров , так и не удаётся показать на экране окно:

174
Ошибка JS на Rails сервере

Ошибка JS на Rails сервере

Запускаю сервер ruby on rais, заходит на loginhtml и выдает вот такую ошибку ,

166
Построение пути

Построение пути

На карте имеется метка, созданная через varК этом метке прикрчен кастомный балун

164
Проблема с версиями node.js

Проблема с версиями node.js

При настройке сервера ubuntu 1604 установил Node

143