es6 にリソースをインポートするために使用するもの
es6 では、import ステートメントまたは import() を使用してリソースをインポートできます。 import コマンドは、「import {member} from 'module identifier'」という構文で、指定したモジュール (リソース ファイル) をインポートするために使用されます。import() は、「import (resource location)」という構文でファイルまたはモジュールをインポートするために使用されます。 」。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
モジュール開発は、ES6 モジュール仕様で定義されている es6 で実行できます。
各 js ファイルは独立したモジュールです。
他のモジュール メンバーをインポートするには import キーワードを使用します。
モジュール メンバーを外部に共有するには expost キーワードを使用します
export コマンド
##export
モジュール関数は、主にexport と
import## という 2 つのコマンドで構成されます # 。 export
コマンドはモジュールの外部インターフェイスを指定するために使用され、import
コマンドは他のモジュールによって提供される関数をインポートするために使用されます。 モジュールは独立したファイルです。このファイル内の変数はすべて外部から取得することはできません。モジュール内の変数を外部から読み取れるようにしたい場合は、
キーワードを使用して変数をエクスポートする必要があります。 例:
//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 = &#39;mike&#39;
var lastName = &#39;Jack&#39;
export {firstName, lastName}</pre><div class="contentsignin">ログイン後にコピー</div></div>
このコマンドは、変数の出力に加えて、関数や関数を出力することもできます。 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>
コマンドは、モジュールの最上位にある限り、モジュール内のどこにでも使用できます。ブロックレベルのスコープにある場合は、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 './test1.js' 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 &#39;./test1.js&#39;</pre><div class="contentsignin">ログイン後にコピー</div></div>
その後の from
は、モジュール ファイルの場所を指定します。相対パスまたは絶対パスを指定できます。
サフィックスは省略可能です。パスのないモジュール名だけの場合は、モジュールの場所を JavaScript エンジンに伝えるための構成ファイルが必要です。モジュールの全体的な読み込み
特定の出力値をロードする場合、全体としてロードを使用することもできます。つまり、アスタリスク (*) を使用してオブジェクトを指定すると、すべての出力値がこのオブジェクトにロードされます。
次の
ファイルは、2 つのメソッド
areaと
circumference を出力します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>import {a} from &#39;./xxx&#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 &#39;./circle&#39;;
console.log(&#39;圆面积:&#39; + area(4));
console.log(&#39;圆周长:&#39; + circumference(14));</pre><div class="contentsignin">ログイン後にコピー</div></div>
モジュールが全体としてロードされるオブジェクト (上記の例は
) は静的に分析可能である必要があるため、実行時の変更は許可されないことに注意してください。以下の書き込み方法は使用できません。
import * as circle from './circle'; console.log('圆面积:' + circle.area(4)); console.log('圆周长:' + circle.circumference(14));
exportdefaultコマンド
exportdefault
は、モジュールのデフォルト出力を指定するために使用されます
import * as circle from './circle'; // 下面两行都是不允许的 circle.foo = 'hello'; 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(&#39;foo&#39;)
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
コマンドは非匿名関数の前に使用できますが、関数名は匿名関数の外部では無効です。モジュールをロードするとき、それは匿名関数としてロードされます。本質的に、exportdefault
は、
という名前の変数またはメソッドを出力することです。その後、システムはそれに任意の値を与えることを許可します。 name<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>import cus from &#39;./export-default.js&#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(&#39;test&#39;)
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
#概要: export
import
ステートメントでは、curly を使用する必要があります。大括弧、export デフォルト 対応する import ステートメントでは中括弧を使用する必要はありません。
exportdefault コマンドは、モジュールのデフォルト出力を指定するために使用されます。明らかに、モジュールはデフォルト出力を 1 つだけ持つことができるため、
exportdefault はモジュール内で 1 回のみ使用できます。同じモジュール。
エクスポートとインポートの組み合わせ記述方法
モジュール内の場合は、最初に入力してから同じモジュールを出力します
import ステートメントは、
export
と一緒に記述できます。export {foo, bar} from 'my_module'
//可以简单理解为
import {foo, bar} from 'my_module'
export {foo, bar}
ログイン後にコピー
export {foo, bar} from 'my_module' //可以简单理解为 import {foo, bar} from 'my_module' export {foo, bar}
上面代码中,export
和import
语句可以结合在一起,写成一行。但需要注意的是,写成一行以后,foo
和bar
实际上并没有导入当前模块,只是相当于对外转发了这两个接口,导致当前模块不能直接使用foo
和bar
.
import()函数
import(specifier)
上面的代码中,import
函数的参数specifier
,指定所要加载的模块的位置。。import
命令能够接受什么参数,import()
函数就能接受什么参数,两者区别主要是后者为动态加载。
import()
返回一个 Promise 对象。下面是一个例子。
const main = document.querySelector('main'); 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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック

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

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

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

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

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

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