INDEX
SyntaxErrorとReferenceError

JavaScriptでは、コードに問題があるとエラーが発生します。エラーはプログラムの実行を止める原因になりますが、原因を理解すれば修正しやすくなります。
特によく見かけるのが、SyntaxErrorとReferenceErrorです。
SyntaxErrorは文法の間違い、ReferenceErrorは存在しない変数や関数の参照によって発生します。
SyntaxErrorとは?
SyntaxErrorは、JavaScriptの構文が正しくない場合に発生するエラーです。
コードがJavaScriptとして正しく解釈できないため、多くの場合は実行前の段階で検出されます。
SyntaxErrorの例
console.log("Hello World);
この例では、文字列を閉じるダブルクォートが不足しているため、SyntaxErrorになります。
SyntaxErrorが発生するケース
- 括弧やクォートを閉じ忘れている。
- カンマやセミコロンの位置が不適切である。
if文や関数の書き方が間違っている。- 予約語を不適切な場所で使っている。
ReferenceErrorとは?
ReferenceErrorは、存在しない変数や関数を参照した場合に発生するエラーです。
変数名のタイプミスや、スコープ外の変数を使おうとした場合によく発生します。
ReferenceErrorの例
console.log(myVariable);
この例では、myVariableが宣言されていないため、ReferenceErrorが発生します。
ReferenceErrorが発生するケース
- 宣言されていない変数を参照した。
- 変数名や関数名をタイプミスした。
- スコープの外にある変数を参照した。
letやconstで宣言する前に変数へアクセスした。
SyntaxErrorとReferenceErrorの違い
| エラーの種類 | 発生する理由 | 例 |
|---|---|---|
SyntaxError |
JavaScriptの構文が正しくない。 | クォートや括弧の閉じ忘れ。 |
ReferenceError |
存在しない変数や関数を参照した。 | 未宣言の変数を使用した。 |
SyntaxErrorの防止策
- 括弧、クォート、中括弧の閉じ忘れを確認する。
- コードエディタの構文チェック機能を利用する。
- ESLintやPrettierなどのツールを活用する。
- エラー行だけでなく、その直前の行も確認する。
ReferenceErrorの防止策
- 変数や関数を使用する前に宣言する。
- 変数名や関数名のタイプミスを確認する。
- スコープを意識して変数を定義する。
letやconstは宣言前に使えないことを理解する。
初心者が知っておきたいポイント
SyntaxErrorは、コードの文法が間違っているときに発生する。ReferenceErrorは、存在しない名前を参照したときに発生する。- エラーメッセージには原因を特定するための重要な情報が含まれている。
- エラーが出た行だけでなく、その前後のコードも確認する。
- エディタやLinterを使うと、エラーを早く見つけやすい。
まとめ
SyntaxErrorは、JavaScriptの構文が正しくない場合に発生する。ReferenceErrorは、未宣言の変数や存在しない関数を参照した場合に発生する。- SyntaxErrorは実行前に検出されることが多い。
- ReferenceErrorはコード実行中に発生することが多い。
- エラーの種類を理解すると、原因を素早く特定しやすくなる。