Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:
Error.name

тип ошибки

Синтаксис

error.name

Описание

Свойство

name
объекта
Error
(или экземпляра любого подкласса
Error
) задает тип произошедшей ошибки или исключения. Все объекты
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 обычно поддерживают эту функцию, хотя это необязательно. Вместо
escape
следует использовать функции
encodeURI
и
encodeURIComponent.

Пример

escape("Hello World!"); // Вернет "Hello%20World%21"

См. также

encodeURI, encodeURIComponent

Eval

eval

исполняет содержащийся в строке JavaScript-код

Синтаксис

eval(код)

Аргументы

код

Строка, содержащая выполняемое выражение или инструкции.

Возвращаемое значение

Значение, полученное в результате выполнения кода, если оно есть.

Исключения

Функция

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 обычно этого не делают, тем не менее в них следует избегать косвенных вызовов.

Поделиться:
Популярные книги

Роза ветров

Кас Маркус
6. Артефактор
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Роза ветров

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

Хозяин Теней 5

Петров Максим Николаевич
5. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Хозяин Теней 5

Демон-хранитель

TsissiBlack
Фантастика:
фэнтези
мистика
5.20
рейтинг книги
Демон-хранитель

Стеллар. Заклинатель

Прокофьев Роман Юрьевич
3. Стеллар
Фантастика:
боевая фантастика
8.40
рейтинг книги
Стеллар. Заклинатель

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

Кодекс Охотника. Книга XIII

Винокуров Юрий
13. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XIII

Брак по-драконьи

Ардова Алиса
Фантастика:
фэнтези
8.60
рейтинг книги
Брак по-драконьи

Древесный маг Орловского княжества 4

Павлов Игорь Васильевич
4. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 4

Кодекс Императора II

Сапфир Олег
2. Кодекс Императора
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Императора II

Тонкий расчет

Шелдон Сидни
Детективы:
триллеры
8.86
рейтинг книги
Тонкий расчет

Московское золото или нежная попа комсомолки. Часть Вторая

Хренов Алексей
2. Летчик Леха
Фантастика:
попаданцы
5.00
рейтинг книги
Московское золото или нежная попа комсомолки. Часть Вторая

Наследие Маозари 7

Панежин Евгений
7. Наследие Маозари
Фантастика:
боевая фантастика
юмористическое фэнтези
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Наследие Маозари 7

Менталист. Конфронтация

Еслер Андрей
2. Выиграть у времени
Фантастика:
боевая фантастика
6.90
рейтинг книги
Менталист. Конфронтация