javascript エラー「Uncaught SyntaxError: Unexpected identifier」の解決方法

javascript エラー「Uncaught SyntaxError: Unexpected identifier」の解決方法

javascriptで、エラー「Uncaught SyntaxError: Unexpected identifier」が発生した場合の原因と解決方法を記述してます。「Unexpected identifier」は「予期しない識別子」という意味で、変数宣言の「var」や「let」などのスペルミスや構文の間違いなどをしてしまった際に発生します。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 107.0.5304.122

エラー内容

以下のコードを実行時に発生。
※その他のパターンは後述してます。

va num = 7;

エラーメッセージ

Uncaught SyntaxError: Unexpected identifier 'num'

画像

firefox(バージョン107)では、下記のエラーとなります。

Uncaught SyntaxError: unexpected token: identifier

画像

safari15.5では、下記のエラーとなります。

SyntaxError: Unexpected identifier 'num'

画像

原因

タイプミスで「var」が「va」だけになっているため。

解決方法

「var」と正しく記述する

var num = 7;

その他のパターン

関数の括弧の閉じ忘れ

括弧の閉じ忘れなどでも同じエラーが発生します。

function fn()
  console.log('sample'); // Uncaught SyntaxError: Unexpected identifier 'console'
}

fn();

解決方法は括弧を閉じてあげます。

function fn(){
  console.log('sample');
}

fn();

セミコロンではなくカンマを使用

セミコロンが必要な構文にカンマなどを使用した場合にも発生します。

let arr = ["aaa", "bbb", "ccc"];

for (let i = 0, i < arr.length; i++) { // Uncaught SyntaxError: Identifier 'i' has already been declared
  console.log(arr[i]);
}

セミコロンを使用することで解決します。

let arr = ["aaa", "bbb", "ccc"];

for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

オブジェクトのプロパティにカンマ漏れ

オブジェクトのプロパティを生成時にカンマが漏れている場合にも発生します。

const obj = {
  name: 'foo' // Uncaught SyntaxError: Unexpected identifier 'age'
  age: 10,
};

カンマを追加します。

const obj = {
  name: 'foo',
  age: 10,
};

スペルミス

例えば変数宣言の「let」の「L」が大文字になっている場合にも発生します。

Let num = 7; // Uncaught SyntaxError: Unexpected identifier 'num'

解決方法は「L」を小文字にして「let」とします。

let num = 7;