#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ファイル');**と呼びだすことでエラー解決できた。