目次
#export コマンドを使用してモジュールの外部インターフェイスを定義した後、他の JS ファイルは
ファイルは、2 つのメソッド
他のモジュールがモジュールをロードするとき、
import()函数
ホームページ ウェブフロントエンド フロントエンドQ&A es6 にリソースをインポートするために使用するもの

es6 にリソースをインポートするために使用するもの

Apr 19, 2022 pm 07:48 PM
es6

es6 では、import ステートメントまたは import() を使用してリソースをインポートできます。 import コマンドは、「import {member} from 'module identifier'」という構文で、指定したモジュール (リソース ファイル) をインポートするために使用されます。import() は、「import (resource location)」という構文でファイルまたはモジュールをインポートするために使用されます。 」。

es6 にリソースをインポートするために使用するもの

このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。

モジュール開発は、ES6 モジュール仕様で定義されている es6 で実行できます。

  • 各 js ファイルは独立したモジュールです。

  • 他のモジュール メンバーをインポートするには import キーワードを使用します。

  • モジュール メンバーを外部に共有するには expost キーワードを使用します

export コマンド

##export

モジュール関数は、主に

exportimport## という 2 つのコマンドで構成されます # 。 export コマンドはモジュールの外部インターフェイスを指定するために使用され、import コマンドは他のモジュールによって提供される関数をインポートするために使用されます。 モジュールは独立したファイルです。このファイル内の変数はすべて外部から取得することはできません。モジュール内の変数を外部から読み取れるようにしたい場合は、

export

キーワードを使用して変数をエクスポートする必要があります。 例:

//test1.js
export var firstName = 'mike'
export var lastName = 'Jack'
ログイン後にコピー

上記のコードは、ユーザー情報を保存する

test1.js

ファイルです。 ES6 はこれをモジュールとして扱い、export コマンドを使用して 3 つの変数を外部にエクスポートします。上記に加えて、export
を記述する別の方法もあります。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>//test1.js var firstName = &amp;#39;mike&amp;#39; var lastName = &amp;#39;Jack&amp;#39; export {firstName, lastName}</pre><div class="contentsignin">ログイン後にコピー</div></div>

export

このコマンドは、変数の出力に加えて、関数や関数を出力することもできます。 class <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>export function add(x, y){ return x + y }</pre><div class="contentsignin">ログイン後にコピー</div></div>

export

コマンドは、モジュールの最上位にある限り、モジュール内のどこにでも使用できます。ブロックレベルのスコープにある場合は、import コマンド

as## と同様にエラーが報告されます。 #通常、export

出力変数は元の名前ですが、

as キーワード

function v1() { ... }
function v2() { ... }

export {
  v1 as streamV1,
  v2 as streamV2,
  v2 as streamLatestVersion
};
ログイン後にコピー
import コマンド

## を使用して名前を変更できます。

#export コマンドを使用してモジュールの外部インターフェイスを定義した後、他の JS ファイルは

import

コマンドを通じてこのモジュールをロードできます。入力変数 Name を再フェッチしたい場合は、import コマンドで as を使用して入力変数の名前を変更する必要があります。

import {firstName, lastName} from &#39;./test1.js&#39;
console.log(firstName,lastName)
ログイン後にコピー

importコマンドの本質は入力インターフェイスであるため、コマンドによって入力される変数はすべて読み取り専用です。つまり、モジュールをロードするスクリプト内でインターフェイスを書き換えることはできません。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>import {lastName as suName} from &amp;#39;./test1.js&amp;#39;</pre><div class="contentsignin">ログイン後にコピー</div></div>

import

その後の from は、モジュール ファイルの場所を指定します。相対パスまたは絶対パスを指定できます。

.js

サフィックスは省略可能です。パスのないモジュール名だけの場合は、モジュールの場所を JavaScript エンジンに伝えるための構成ファイルが必要です。モジュールの全体的な読み込み特定の出力値をロードする場合、全体としてロードを使用することもできます。つまり、アスタリスク (*) を使用してオブジェクトを指定すると、すべての出力値がこのオブジェクトにロードされます。 次の

circle.js

ファイルは、2 つのメソッド

area

circumference

を出力します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>import {a} from &amp;#39;./xxx&amp;#39; a = {} //报错</pre><div class="contentsignin">ログイン後にコピー</div></div>次に、このモジュールをロードします。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>// circle.js export function area(radius) { return Math.PI * radius * radius; } export function circumference(radius) { return 2 * Math.PI * radius; }</pre><div class="contentsignin">ログイン後にコピー</div></div>上記はロードするメソッドを一つずつ指定する方法ですが、全体のロード方法は以下の通りです。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>// main.js import { area, circumference } from &amp;#39;./circle&amp;#39;; console.log(&amp;#39;圆面积:&amp;#39; + area(4)); console.log(&amp;#39;圆周长:&amp;#39; + circumference(14));</pre><div class="contentsignin">ログイン後にコピー</div></div>モジュールが全体としてロードされるオブジェクト (上記の例は

circle

) は静的に分析可能である必要があるため、実行時の変更は許可されないことに注意してください。以下の書き込み方法は使用できません。

import * as circle from &#39;./circle&#39;;
console.log(&#39;圆面积:&#39; + circle.area(4));
console.log(&#39;圆周长:&#39; + circle.circumference(14));
ログイン後にコピー

exportdefaultコマンド

exportdefaultは、モジュールのデフォルト出力を指定するために使用されます

import * as circle from &#39;./circle&#39;;

// 下面两行都是不允许的
circle.foo = &#39;hello&#39;;
circle.area = function () {};
ログイン後にコピー

他のモジュールがモジュールをロードするとき、

import

コマンドでは匿名関数に任意の名前を指定できます<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>//export-default.js export default function(){ console.log(&amp;#39;foo&amp;#39;) }</pre><div class="contentsignin">ログイン後にコピー</div></div>

export default

コマンドは非匿名関数の前に使用できますが、関数名は匿名関数の外部では無効です。モジュールをロードするとき、それは匿名関数としてロードされます。本質的に、exportdefault は、

default

という名前の変数またはメソッドを出力することです。その後、システムはそれに任意の値を与えることを許可します。 name<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>import cus from &amp;#39;./export-default.js&amp;#39;</pre><div class="contentsignin">ログイン後にコピー</div></div>通常の出力とデフォルトの出力を比較<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>export default function test(){ console.log(&amp;#39;test&amp;#39;) }</pre><div class="contentsignin">ログイン後にコピー</div></div>#概要: export

対応する

import

ステートメントでは、curly を使用する必要があります。大括弧、

export デフォルト 対応する import ステートメントでは中括弧を使用する必要はありません。 exportdefault コマンドは、モジュールのデフォルト出力を指定するために使用されます。明らかに、モジュールはデフォルト出力を 1 つだけ持つことができるため、exportdefault はモジュール内で 1 回のみ使用できます。同じモジュール。 エクスポートとインポートの組み合わせ記述方法モジュール内の場合は、最初に入力してから同じモジュールを出力します import ステートメントは、export

ステートメント

と一緒に記述できます。
export {foo, bar} from &#39;my_module&#39;
//可以简单理解为
import {foo, bar} from &#39;my_module&#39;
export {foo, bar}
ログイン後にコピー

上面代码中,exportimport语句可以结合在一起,写成一行。但需要注意的是,写成一行以后,foobar实际上并没有导入当前模块,只是相当于对外转发了这两个接口,导致当前模块不能直接使用foobar.

import()函数

import(specifier)

上面的代码中,import函数的参数specifier,指定所要加载的模块的位置。。import命令能够接受什么参数,import()函数就能接受什么参数,两者区别主要是后者为动态加载。

import()返回一个 Promise 对象。下面是一个例子。

const main = document.querySelector(&#39;main&#39;);
import(`./section-modules/${someVariable}.js`)
  .then(module => {
    module.loadPageInto(main);
  })
  .catch(err => {
    main.textContent = err.message;
  });
ログイン後にコピー

import()函数可以用在任何地方,不仅仅是模块,非模块的脚本也可以使用。它是运行时执行,也就是说,什么时候运行到这一句,就会加载指定的模块。另外,import()函数与所加载的模块没有静态连接关系,这点也是与import语句不相同。import()类似于 Node 的require方法,区别主要是前者是异步加载,后者是同步加载。

【相关推荐:javascript视频教程web前端

以上がes6 にリソースをインポートするために使用するものの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ES6 で配列を反転する方法 ES6 で配列を反転する方法 Oct 26, 2022 pm 06:19 PM

ES6 では、配列オブジェクトの reverse() メソッドを使用して、配列の反転を実現できます。このメソッドは、配列内の要素の順序を逆にして、最後の要素を最初に、最初の要素を最後に配置するために使用されます。構文「array」 。逆行する()"。 reverse() メソッドは元の配列を変更します。変更したくない場合は、拡張演算子 "..." とともに使用する必要があり、構文は "[...array].reverse() 」。

非同期は es6 または es7 用ですか? 非同期は es6 または es7 用ですか? Jan 29, 2023 pm 05:36 PM

非同期はes7です。 async と await は ES7 に新しく追加されたもので、非同期操作のソリューションです。async/await は co モジュールとジェネレーター関数の糖衣構文と言え、より明確なセマンティクスで JS 非同期コードを解決します。名前が示すように、async は「非同期」を意味します。async は関数が非同期であることを宣言するために使用されます。async と await の間には厳密な規則があります。両方を互いに分離することはできず、await は async 関数内でのみ記述できます。

es6 の 2 つの配列で異なる項目を見つける方法 es6 の 2 つの配列で異なる項目を見つける方法 Nov 01, 2022 pm 06:07 PM

手順: 1. 構文 "newA=new Set(a); newB=new Set(b);" を使用して、2 つの配列をそれぞれセット型に変換します; 2. has() と filter() を使用して差分セットを検索します、構文 " new Set([...newA].filter(x =>!newB.has(x)))" では、差分セット要素がセット コレクションに含まれて返されます。 3. 配列を使用します。 from セットを配列に変換するタイプ、構文は「Array.from(collection)」です。

ミニ プログラムで es6 を es5 に変換する必要があるのはなぜですか? ミニ プログラムで es6 を es5 に変換する必要があるのはなぜですか? Nov 21, 2022 pm 06:15 PM

ブラウザの互換性のため。 ES6 は JS の新しい仕様として、多くの新しい構文と API を追加していますが、最新のブラウザーは ES6 の新機能を高度にサポートしていないため、ES6 コードを ES5 コードに変換する必要があります。 WeChat Web 開発者ツールでは、デフォルトで babel が使用され、開発者の ES6 構文コードを 3 つの端末すべてで適切にサポートされる ES5 コードに変換し、開発者がさまざまな環境によって引き起こされる開発上の問題を解決できるようにします。プロジェクト内でのみ設定して確認するだけです。 「ES6~ES5」オプション。

es5 および es6 で配列重複排除を実装する方法 es5 および es6 で配列重複排除を実装する方法 Jan 16, 2023 pm 05:09 PM

es5 では、for ステートメントと IndexOf() 関数を使用して配列の重複排除を実現できます。構文 "for(i=0;i<配列長;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}」。 es6 では、スプレッド演算子 Array.from() および Set を使用して重複を削除できます。まず配列を Set オブジェクトに変換して重複を削除してから、スプレッド演算子または Array.from() 関数を使用する必要があります。 Set オブジェクトを配列に変換してグループ化するだけです。

es6 の一時的なデッドゾーンとは何を意味しますか? es6 の一時的なデッドゾーンとは何を意味しますか? Jan 03, 2023 pm 03:56 PM

es6 では、一時的なデッド ゾーンは構文エラーであり、ブロックを閉じたスコープにする let および const コマンドを指します。コード ブロック内では、let/const コマンドを使用して変数が宣言される前に、変数は使用できず、変数が宣言される前は変数の「デッド ゾーン」に属します。これは構文上「一時デッド ゾーン」と呼ばれます。 ES6 では、一時的なデッド ゾーンや let ステートメントや const ステートメントでは変数のプロモーションが発生しないことを規定しています。これは主に実行時エラーを減らし、変数が宣言される前に使用されて予期しない動作が発生するのを防ぐためです。

es6 マップは注文されていますか? es6 マップは注文されていますか? Nov 03, 2022 pm 07:05 PM

地図は注文済みです。 ES6 のマップ タイプは、多くのキーと値のペアを格納する順序付きリストです。キー名と対応する値はすべてのデータ型をサポートします。キー名の等価性は、「Objext.is()」メソッドを呼び出すことによって決定されます。 , したがって、数字の 5 と文字列「5」は 2 つのタイプとして判断され、プログラム内で 2 つの独立したキーとして現れることができます。

es6 構文が必要ですか? es6 構文が必要ですか? Oct 21, 2022 pm 04:09 PM

いいえ、require は CommonJS 仕様のモジュール構文であり、es6 仕様のモジュール構文は import です。 require は実行時にロードされ、import はコンパイル時にロードされます。require はコード内のどこにでも記述できます。import はファイルの先頭にのみ記述でき、条件文や関数スコープでは使用できません。モジュール属性は導入されるだけです。 require を実行した場合、そのためパフォーマンスは比較的低くなりますが、インポート コンパイル中に導入されたモジュールのプロパティのパフォーマンスはわずかに高くなります。

See all articles