eval

Синтаксис

eval(codeStr)

Аргументы

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

Описание, примеры

Пример:
a = "alert(1)"
eval(a)

Метод eval возвращает значение последнего вычисленного выражения.

Пример:
var str = "if (a) { 1+1 } else { 1+2 }"
var a = true
var 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) {
    return eval(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) // современный вариант
}
Заказ воды в офис нестле. Заказ воды нестле .
nurli.ru