Сводка
Объект SyntaxError представляет ошибку, возникающую при попытке интерпретировать синтаксически неправильный код.
Синтаксис
new SyntaxError([message[, fileName[, lineNumber]]])
Параметры
message- Необязательный параметр. Человеко-читаемое описание ошибки.
fileName- Необязательный параметр. Имя файла, содержащего код, вызвавший исключение.
lineNumber- Необязательный параметр. Номер строки кода, вызвавшей исключение.
Описание
Исключение SyntaxError выбрасывается, когда движок JavaScript при разборе кода обнаруживает токены или токен, которые, согласно синтаксису, не должны здесь находиться.
Свойства
SyntaxError.prototype- Позволяет добавлять свойства в объект
SyntaxError.
Методы
Глобальный объект SyntaxError не содержит собственных методов, однако, он наследует некоторые методы из цепочки прототипов.
Экземпляры объекта SyntaxError
Свойства
SyntaxError.prototype.constructor- Определяет функцию, создающую прототип экземпляра.
SyntaxError.prototype.message- Сообщение ошибки. Хотя стандарт ECMA-262 определяет, что
SyntaxErrorдолжен предоставлять своё собственное свойствоmessage, в SpiderMonkey он наследует свойствоError.prototype.message. SyntaxError.prototype.name- Название ошибки. Унаследовано от
Error. SyntaxError.prototype.fileName- Путь к файлу, в котором возникла эта ошибка. Унаследовано от
Error. SyntaxError.prototype.lineNumber- Номер строки в файле, в котором возникла эта ошибка. Унаследовано от
Error. SyntaxError.prototype.columnNumber- Номер колонки в строке, на которой возникла эта ошибка. Унаследовано от
Error. SyntaxError.prototype.stack- Стек вызовов. Унаследовано от
Error.
Методы
Хотя объект прототипа SyntaxError не содержит собственных методов, экземпляры SyntaxError наследуют некоторые методы из цепочки прототипов.
Примеры
Пример: перехват исключения SyntaxError
try {
eval('hoo bar');
} catch (e) {
console.log(e instanceof SyntaxError); // true
console.log(e.message); // "missing ; before statement" - перед инструкцией отсутствует символ ;
console.log(e.name); // "SyntaxError"
console.log(e.fileName); // "Scratchpad/1"
console.log(e.lineNumber); // 1
console.log(e.columnNumber); // 4
console.log(e.stack); // "@Scratchpad/1:2:3\n"
}
Пример: возбуждение исключения SyntaxError
try {
throw new SyntaxError('Привет', 'someFile.js', 10);
} catch (e) {
console.log(e instanceof SyntaxError); // true
console.log(e.message); // "Привет"
console.log(e.name); // "SyntaxError"
console.log(e.fileName); // "someFile.js"
console.log(e.lineNumber); // 10
console.log(e.columnNumber); // 0
console.log(e.stack); // "@Scratchpad/2:11:9\n"
}
Спецификации
| Спецификация | Статус | Комментарии |
|---|---|---|
| ECMAScript 3-е издание. | Стандарт | Изначальное определение. |
| ECMAScript 5.1 (ECMA-262) Определение 'SyntaxError' в этой спецификации. |
Стандарт | |
| ECMAScript 2015 (6th Edition, ECMA-262) Определение 'SyntaxError' в этой спецификации. |
Стандарт |
Совместимость с браузерами
We're converting our compatibility data into a machine-readable JSON format.
This compatibility table still uses the old format,
because we haven't yet converted the data it contains.
Find out how you can help!
| Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
| Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |