Об'єкт класу 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.log(e instanceof SyntaxError);  // true
  console.log(e.message);                 // "казна is not defined"
  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 3rd Edition (ECMA-262) Standard Первинне визначення.
ECMAScript 5.1 (ECMA-262)
The definition of 'SyntaxError' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'SyntaxError' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'SyntaxError' in that specification.
Draft  

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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes1 Yes Yes Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes4 Yes Yes Yes

Див. також

Мітки документа й учасники

Зробили внесок у цю сторінку: asmforce
Востаннє оновлена: asmforce,