SyntaxError

Об'єкт класу SyntaxError позначає помилку, що виникає внаслідок спроби виконання коду з порушеннями синтаксису.

Опис

Виняток SyntaxError викидається тоді, коли рушій JavaScript під час спроби виконати код виявляє символи чи їх послідовність, що суперечить чинному синтаксу мови.

Синтаксис

new SyntaxError([message[, fileName[, lineNumber]]])

Параметри

message Optional
Зрозумілий людині опис помилки.
fileName Optional
Ім'я файлу, код з якого спричинив помилку.
lineNumber Optional
Номер рядка в коді, що спричинив помилку.

Властивості

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('казна-що');
} catch (e) {
  console.error(e instanceof SyntaxError);
  console.error(e.message);
  console.error(e.name);
  console.error(e.fileName);
  console.error(e.lineNumber);
  console.error(e.columnNumber);
  console.error(e.stack);
}

Створення SyntaxError

try {
  throw new SyntaxError('Отакої!', 'someFile.js', 10);
} catch (e) {
  console.error(e instanceof SyntaxError);  // true
  console.error(e.message);                 // Отакої!
  console.error(e.name);                    // SyntaxError
  console.error(e.fileName);                // someFile.js
  console.error(e.lineNumber);              // 10
  console.error(e.columnNumber);            // 0
  console.error(e.stack);                   // @debugger eval code:3:9
}

Специфікації

Специфікація
ECMAScript (ECMA-262)
The definition of 'SyntaxError' in that specification.

Підтримка веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
SyntaxErrorChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 5.5Opera Full support 5Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
SyntaxError() constructorChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 5.5Opera Full support 5Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support

Див. також