САЙТЫ  ПОД  КЛЮЧ
ОНЛАЙН-СЕРВИСЫ СПРАВОЧНИКИ SEO-ИНСТРУМЕНТЫ РАЗВЛЕЧЕНИЯ

Справочник Javascript

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) // современный вариант
}

 

Это интересно

Однажды разработчики eBay решили убрать ярко-жёлтый фон на некоторых страницах сайта, заменив его белым, и сразу же получили большое число писем от пользователей с требованием вернуть всё, как было. Тогда программисты применили другое решение: они изменили код сайта так, чтобы каждый день фон становился чуточку светлее и в итоге стал чисто белым. В этот раз не поступило ни одной жалобы.


Наши реквизиты
WMID: 309688839848
WMR: R325885159214
E-mail: 
  BL:Бизнес-уровень [BL]
QR-код сайта
Онлайн-радио
Больше радиостанций