mdn: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import ## 概要 `import()` シンタックスは、ダイナミックインポートと呼ばれる関数ライクな式であり、潜在的にモジュールではない環境に対して [[JavaScript ECMAScript Module MOC|ES Module]] を非同期的かつ動的にロードできるものである。 通常の [[JavaScript named export import|import]] とは異なり、ダイナミックインポートは必要になったときのみに評価されるので、シンタックスの柔軟性が与えられる。 `import()` の呼び出しは関数呼び出しに似ているが、`import` はキーワードなので関数ではないことに注意する。 ## シンタックス ```js import(moduleName); ``` 返り値は、引数の `modulename` からのすべての [[JavaScript named export import|export]] を格納した「モジュール名前空間オブジェクト (module namespace object)」と呼ばれるオブジェクトが履行値となる [[JavaScriptのPromiseオブジェクト MOC|Promise]] オブジェクトである。 [[JavaScriptのPromiseオブジェクト MOC|Promise]] を返すので基本的には [[JavaScriptのawait式とは|await式]] で評価して履行値 (= モジュール名前空間オブジェクト) を取り出して利用していく。 ```js const m = await import(moduleName); ``` [[Node.js REPLでのモジュールインポート|NodeのREPLでのモジュールインポート]] ではこの方法を使う必要がある。