) задает тип произошедшей ошибки или исключения. Все объекты
Error
наследуют это свойство от своего конструктора. Значение свойства совпадает с именем конструктора.
Другими словами, у объектов
SyntaxError
свойство name равно «SyntaxError», а у объектов
EvalЕrror
– «EvalError».
Error.toString
преобразует объект Error в строку (переопределяет Object.toString)
Синтаксис
error.toString
Возвращаемое значение
Строка, определенная реализацией. Стандарт ECMAScript ничего не говорит о значении, возвращаемом этим методом, за исключением того, что оно должно быть строкой. Стоит отметить, что он не требует, чтобы возвращаемая строка содержала имя ошибки или сообщение об ошибке.
escape (устарело)
кодирует строку
Синтаксис
escape(s)
Аргументы
s Строка, которая должна быть закодирована (с применением управляющих последовательностей).
Возвращаемое значение
Закодированная копия s, в которой определенные символы заменены шестнадцатеричными управляющими последовательностями.
Описание
escape
– глобальная функция, которая возвращает новую строку, содержащую закодированную версию аргумента s. Сама строка s не изменяется. Функция
escape
возвращает строку, в которой все символы, имеющиеся в строке s, отличные от букв, цифр и символов пунктуации (@, *, _, +, -,. и /) набора ASCII, заменены управляющими последовательностями в формате %хх или %ихххх (где х обозначает шестнадцатеричную цифру). Символы Юникода от \u0000 до \u00f f заменяются управляющей последовательностью %хх, все остальные символы Юникода - последовательностью %uхххх.
Строка, закодированная с помощью
escape,
декодируется функцией
unescape.
Хотя функция
escape
стандартизована в первой версии ECMAScript, она была признана устаревшей и удалена из стандарта в ECMAScript v3. Реализации ECMAScript обычно поддерживают эту функцию, хотя это необязательно. Вместо
Строка, содержащая выполняемое выражение или инструкции.
Возвращаемое значение
Значение, полученное в результате выполнения кода, если оно есть.
Исключения
Функция
eval
возбуждает исключение
SyntaxError
, если аргумент код содержит некорректный программный код на языке JavaScript. Если исключение будет возбуждено самим программным кодом в аргументе код, функция
eval
передаст его выше по стеку вызовов.
Описание
eval
– это метод глобального объекта, вычисляющий строку, в которой содержится программный код на языке JavaScript. Если код содержит JavaScript-выражение,
eval
вычислит выражение и вернет его значение. Если код содержит одну или несколько JavaScript-инструкций,
eval
выполнит эти инструкции и вернет то значение (если оно есть), которое вернет последняя инструкция. Если код не возвращает никакого значения,
eval
вернет значение undefined. И наконец, если код сгенерирует исключение,
eval
передаст это исключение вызывающей программе.
В спецификациях ECMAScript 3 и ECMAScript 5 определяется различное поведение функции
eval.
Кроме того, в спецификации ECMAScript 5 для нее определяется различное поведение в строгом и нестрогом режимах. Чтобы объяснить эти различия, необходимо немного отклониться от темы. Реализовать эффективный интерпретатор намного проще, когда язык программирования определяет
eval
как оператор, а не как функцию. В языке JavaScript eval является функцией, но ради обеспечения эффективности в нем различаются непосредственные и косвенные вызовы
eval.
В непосредственном вызове используется идентификатор
eval
, и, если убрать скобки, вызов функции будет выглядеть как применение оператора
eval
. Любые другие вызовы
eval
являются косвенными. Если присвоить функцию
eval
переменной с другим именем и вызвать по имени переменной, это будет косвенный вызов. Аналогично, если вызвать
eval
как метод глобального объекта, это также будет косвенный вызов. Определив понятия непосредственного и косвенного вызова, поведение функции
eval
можно описать следующим образом:
Непосредственный вызов, ES3 и нестрогий режим ES5
eval
выполняет код в текущей лексической области видимости. Если код объявляет переменную или функцию, она будет определена в локальной области видимости. Это обычный случай использования функции
eval.
Косвенный вызов, ES3
Спецификация ECMAScript 3 позволяет интерпретаторам возбуждать исключение
EvalError
для любых косвенных вызовов
eval.
На практике реализации ES3 обычно этого не делают, тем не менее в них следует избегать косвенных вызовов.