код для выполнения, может использовать переменные и свойства существующих объектов
Описание, примеры
Пример:
a = "alert(1)"eval(a)
Метод eval возвращает значение последнего вычисленного выражения.
Пример:
var str = "if (a) { 1+1 } else { 1+2 }"var a = truevar b = eval(str)alert("b равно : " + b)// 2// теперь поменяем "a"
a = false
b = eval(str)alert("b равно : " + b)// 3
Если аргумент eval - не строка, то возвращается аргумент без изменения:
Пример:
r = new RegExp('a')
r == eval(r)// true
Можно обойти это прямым вызовом toString:
Пример:
function forceEval(obj){returneval(obj.toString())}
Не используйте eval
Выполнение кода в eval может быть небезопасно. При таком выполнении затруднена отладка. В современном javascript, как правило, можно воспользоваться другими языковыми средствами вместо eval.
eval для JSON
Как правило, eval используют для разбора формата JSON.
var = eval('('+json+')')
Такой способ небезопасен, но наиболее быстр.
Второй параметр
В старых реализациях javascript у eval мог быть второй параметр - объект obj, в контексте которого выполнялся код.
В современном javascript для этого используется with:
Пример:
Выделить все
eval(code, obj)// старый вариантwith(obj){eval(code)// современный вариант}
Это интересно
Самый старый действующий компьютер все также занимает комнату в Ikeda Memorial Hall (Япония). FACOM 128B был создан в 1958 году и все еще функционирует, не превышая по производительности банальный калькулятор.