javascript エラー「Uncaught ReferenceError: xxx is not defined」の解決方法

javascript エラー「Uncaught ReferenceError: xxx is not defined」の解決方法

javascriptで、エラー「Uncaught ReferenceError: xxx is not defined」が発生した場合の原因と解決方法を記述してます。

環境

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

エラー内容

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

const foo1 = 'msg';

console.log(foo)

エラーメッセージ

Uncaught ReferenceError: foo is not defined

画像

firefox(バージョン102)でも、同様のエラーとなります。

Uncaught ReferenceError: foo is not defined

画像

原因

スペルミスなどで、定義されていない変数を使用しようとしているため発生。

解決方法

定義してから使用するか、

let foo = "msg"

console.log(foo)

存在チェックを行ってから使用します。

if (typeof foo !== 'undefined') console.log(foo)

その他のパターン

スコープ外

スコープ外にある変数を使用しようとしても、同じエラーが発生します。
※firefoxでも同じエラーが発生します。

function foo(){

    let str = "abc"

    console.log(str)

}

console.log(str)
// Uncaught ReferenceError: str is not defined

スコープを考慮して使用すれば、エラーは発生しません。

let str = "abc"

function foo(){    

    console.log(str)
}

console.log(str)
// abc

foo()
// abc