SyntaxError オブジェクトは、構文的に不正なコードを解釈しようとした場合のエラーを表します。
解説
SyntaxError は、 JavaScript エンジンが、コードを解析中に言語の構文に従わないトークンまたはトークンの順序に遭遇した場合に発生します。
構文
new SyntaxError([message[, fileName[, lineNumber]]])
引数
messageOptional- 人間が読めるエラーの説明
fileNameOptional- 例外を引き起こしたコードを含むファイル名
lineNumberOptional- 例外を引き起こしたコードの行番号
プロパティ
SyntaxError.prototypeSyntaxErrorオブジェクトにプロパティを追加することができます。
メソッド
グローバルな 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.error(e instanceof SyntaxError); // true
console.error(e.message); // "missing ; before statement"
console.error(e.name); // "SyntaxError"
console.error(e.fileName); // "Scratchpad/1"
console.error(e.lineNumber); // 1
console.error(e.columnNumber); // 4
console.error(e.stack); // "@Scratchpad/1:2:3\n"
}
SyntaxError の生成
try {
throw new SyntaxError('Hello', 'someFile.js', 10);
} catch (e) {
console.error(e instanceof SyntaxError); // true
console.error(e.message); // "Hello"
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); // "@Scratchpad/2:11:9\n"
}
仕様書
| 仕様書 | 状態 | 備考 |
|---|---|---|
| ECMAScript (ECMA-262) SyntaxError の定義 |
現行の標準 | |
| ECMAScript 2015 (6th Edition, ECMA-262) SyntaxError の定義 |
標準 | |
| ECMAScript 5.1 (ECMA-262) SyntaxError の定義 |
標準 | |
| ECMAScript 3rd Edition (ECMA-262) | 標準 | 初回定義 |
ブラウザーの互換性
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。
Update compatibility data on GitHub
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SyntaxError | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 5 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
SyntaxError() constructor | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 5 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
凡例
- 完全対応
- 完全対応