JavaScript/SyntaxError
表示
SyntaxError は、JavaScriptの構文に違反するコードを評価しようとした際に発生するエラーオブジェクトです。このエラーは、コードが JavaScript の言語構文規則に従っていない場合に投げられます[1]。
構文
[編集]new SyntaxError() new SyntaxError(message) new SyntaxError(message, options)
message: エラーの説明を示す文字列。省略可能。options: エラーに関する追加情報を含むオブジェクト。causeプロパティを含めることができます。省略可能。
例
[編集]不正な構文によるSyntaxErrorの発生
[編集]以下のプログラムは、不正な JavaScript 構文により SyntaxError が発生する例を示しています。
try { eval("if (true) {"); // 閉じ括弧がない不完全な構文 } catch (e) { console.log(e instanceof SyntaxError); // true console.log(e.message); // "Unexpected end of input" }
このプログラムでは、eval() 関数で不完全な構文を評価しようとしているため、SyntaxError が発生します。
JSON解析エラーによるSyntaxErrorの発生
[編集]以下のプログラムは、不正なJSON文字列を解析しようとした際に SyntaxError が発生する例を示しています。
try { JSON.parse("{ name: 'John' }"); // 有効なJSONではない(キーが引用符で囲まれていない) } catch (e) { console.log(e instanceof SyntaxError); // true console.log(e.message); // "Unexpected token n in JSON at position 2" }
このプログラムでは、JSON.parse() メソッドで不正なJSON文字列を解析しようとしているため、SyntaxError が発生します。JSONでは、キーは必ず二重引用符で囲む必要があります。
注意点
[編集]- コンパイルタイムエラー:
SyntaxErrorは通常、コードの実行前(コンパイル時)に発生します。 - 修正方法: 発生したエラーメッセージを確認し、対応する構文の問題を修正する必要があります。
- 継承:
SyntaxErrorはErrorオブジェクトを継承しているため、すべてのErrorプロパティとメソッドを持っています。
脚註
[編集]- ^ これは、コードの構文解析中に問題が発見されたことを示すために使用されます。