САЙТЫ  ПОД  КЛЮЧ
ОНЛАЙН-СЕРВИСЫ СПРАВОЧНИКИ 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) // современный вариант
}

 

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

Дата-центр IBM в кампусе Сиракьюсского университета в штате Нью-Йорк — это результат эксперимента знаменитой технологической компании. Руководство IBM согласилось выделить средства на постройку и предоставить оборудование в том случае, если проектировщикам удастся снизить энергопотребление вдвое по сравнению с обычным центром той же мощности. В 2009 году строительство было завершено, что дало университету возможность закрыть старый IT-центр, располагавшийся в 100-летнем корпусе. Питает дата-центр собственная электростанция, работающая на газу и вырабатывающая электричество с помощью 12 микротурбин. Эта конструкция была разработана специально для этого проекта, а ее эффективность на 60% выше, чем у обычных газовых электростанций.


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