外部のJavaScriptファイルを読み込む方法をまとめます。
以下、
index.js
→呼び出すファイル
import.js
→呼び出されるファイル
とします。
import/export
import/exportを使う方法です。
まず呼び出されるファイルにて、渡したい値にexport
を設定します。
export const nameText = `太郎`;
複数の値を渡す場合などは、最後にまとめて設定することもできます。
const nameText = `太郎`;
const genderText = `男`;
export { nameText, genderText };
続いて呼び出すファイルにて、importを設定します。
// 読み込みたい値を設定する
import { nameText } from './import.js';
const testElement = document.getElementById('test');
// 外部ファイルの値を使用できる
testElement.innerHTML = `こんにちは${nameText}さん`;
script
タグにtype="module"
を設定することでimport/exportが機能します。
<head>
<script type="module" src="./index.js"></script>
</head>
<body>
<p id="test"></p>
</body>
scriptタグ(静的)
続いてscript
タグを用いた方法です。
<script src="./import.js"></script>
<script src="./index.js"></script>
HTMLのscript
タグで読み込まれたJavaScriptファイルは全てがスコープの範囲となるため、外部のJavaScriptファイルにもアクセスできるようになります。
注意点はファイルの読み込み順です。
今回の場合、import.js
を後に読み込んでしまうとエラーになります。
index.js
を実行した時点で、import.js
内の値はまだ定義されていないためです。
script
タグの記述順やdefer
属性を付与するなどして、依存関係に注意します。
※defer属性についてはこちら→scriptタグの書き方【同期的読み込みと非同期的読み込み】
scriptタグ(動的)
script
タグはJavaScriptファイル内で作成、設定することもできます。
// scriptタグを作成
const scriptElement = document.createElement('script');
// 読み込みたい外部ファイルを設定
scriptElement.src = "./import.js";
// bodyタグ内に設置
document.body.appendChild(scriptElement);
こちらも依存関係に注意しましょう。