JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】Uncaught SyntaxError: Unexpected identifier の主な原因と解決方法

ブラウザの開発者コンソールに、次のようなJavaScriptのエラーが表示されたことはありませんか?

Uncaught SyntaxError: Unexpected identifier

この「キャッチされない構文エラー(予期しない識別子)」が発生する最も一般的な原因のひとつが、constで宣言した変数の値を変更(再代入)しようとしていることです。JavaScriptでは、これは許可されていません。

constは「不変(イミュータブル)な変数」

JavaScriptにおけるconstは、いわゆる不変(immutable)な変数を宣言するためのキーワードです。「後から誰にも書き換えられたり、再宣言されたりしてほしくない」という値に対して使用します。

const TAX_RATE = 0.1;
TAX_RATE = 0.15; // ❌ エラー:const の変数は再代入できない

値を変更したい場合はletを使う

一方、宣言後に値を入れ替えたい・更新したい変数には、letを使用しましょう。letで宣言された変数は可変(mutable)であり、自由に再代入できます。

let discount = 0;
discount = 0.05; // ✅ OK:問題なく再代入できる

まとめると、使い分けの基準はシンプルです。

  • const: 再代入不要な定数的な値に使う(変更不可)
  • let: 後から値を更新したい変数に使う(変更可能)

「値を書き換えたいのに const を使っていないか?」を見直すだけで、このエラーはすぐに解消できます。エラーメッセージだけでは原因が分かりにくいことも多いため、まずは変数の宣言方法を確認してみてください。

  1. JavaScriptのconstとletの違いを徹底解説!ブロックスコープ変数の基本と使い方

    JavaScriptにおけるconstとletの基本const と let は、ES2015(ES6)で導入された変数宣言用のキーワードです。どちらもブロックスコープ(波括弧 { } で囲まれた範囲)に対応しているのが特徴で、関数スコープしか持たなかった従来の var とは異なる挙動を示します。両者の大きな違いは再代入の可否です。letで宣言した変数は後から何度でも値を再代入できますが、constで宣言した変数は再代入しようとするとエラー(TypeError)が発生します。letとconstの主な違い項目letconst再代入可能不可(エラー発生)スコープブロックスコープブロックスコープ宣言時

  2. 【修正】「syntax error near unexpected token `('」構文エラーの原因と解決策

    Unix系環境、Cygwin、そしてWindowsのコマンドラインインターフェースで発生する代表的なエラーが syntax error near unexpected token `( です。このエラーは、特に古いDOS/Windows環境や旧Macシステムで作成・編集されたシェルスクリプトを実行しようとした際に発生しやすいことで知られています。また、ファイルの手動コピーなどの日常的な操作でLinuxのコマンドラインにコマンドを入力した際にも、このエラーが表示されることがあります。主な原因は、大きく分けて「構文の誤り」と「OSが他システムのコマンドやシェルを正しく解釈できないこと」の2つです。