LoginSignup
0
0

More than 3 years have passed since last update.

【JavaScript】let宣言では同じ変数名は使えない、そんなことは分かっているけれど

Last updated at Posted at 2020-09-22

let宣言では同じ変数名は使えない、そんなことは分かっているけれど

エラー内容

「この変数名は既に宣言されています」

何度ファイル内を見直して、同じ変数名がlet宣言されていないことを確認するも表示されるこのエラー。
見直せど、見直せど原因がわからない。

原因

コードレビューしてもらい発覚した原因。
それはファイルをリファクタリングしたときにミスをしており、ファイルを二重読み込みしていたこと

同じ操作を複数のファイルに記述していたheader箇所を外部ファイル化したときに、その外部ファイル(Bとする)内でも該当のJavaScriptファイル(Cとする)を読み込んでいたのだ。

外部ファイルBを読み込んだファイル(Aとする)の両方でJavaScriptファイルCを呼び出していたため、二重呼び出し(二重読み込み)の状態になりエラーが発生していた。

AーBーC
|
C

<html>
  <head>
    <script defer src="C.js"></script>
  </head>

  <body>
    <header>
     ~~~~~~~
    </header>

  </body>

</html>

header箇所を外部ファイル化するにも関わらず、htmlタグやheadタグ、bodyタグを記述してさらにJavaScriptファイルCまで読み込んでいたことがエラーの原因だった。


<header>
 ~~~~
</header>

本来、外部ファイルBではJavaScriptファイルCを呼び出す必要はなかったため削除し、header箇所だけ記述しておおもとのPHPファイルAでrequire_once('headerファイル');と呼びだすことでエラー解決できた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0