Об'єкт класу 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  

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

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

Див. також

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

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