


Vergleich von Import und Export von AMD- und ES6-Modulen in JavaScript (Codebeispiel)
Der Inhalt dieses Artikels befasst sich mit dem Vergleich des Imports und Exports von AMD- und ES6-Modulen in JavaScript (Codebeispiele). Ich hoffe, dass er für Sie hilfreich ist .
Unser Frontend stößt während des Entwicklungsprozesses häufig auf Import- und Exportfunktionen.
Beim Importieren ist es manchmal erforderlich, manchmal ist es Import.
Beim Exportieren sind es manchmal Exporte, Modulexporte , manchmal Export, Exportstandard
Heute werden wir diese Inhalte kurz vorstellen
Import, Export, Exportstandard
Import, Export, Exportstandard gehören zur ES6-Spezifikation
Import
Der Import wird während des Kompilierungsprozesses ausgeführt
Das heißt, er wird ausgeführt, bevor der Code ausgeführt wird
Wenn beispielsweise der Pfad nach dem Import falsch geschrieben ist, wird dies der Fall sein Wird vor dem Ausführen des Codes ausgeführt.
Beim Schreiben von Code muss der Import nicht an die Spitze von js geschrieben werden Das gesamte Modul wird zuerst gelesen und ausgeführt. (Wird während der Kompilierungsphase ausgeführt)
Der Import wird statisch ausgeführt
Da der Import statisch ausgeführt wird, können keine Ausdrücke und Variablen verwendet werden, d. h. Syntaxstrukturen, die das Ergebnis nur zur Laufzeit erhalten können
Zum Beispiel , Sie können import
nicht in if und else verwenden. In einem anderen Beispiel kann der Pfad von from after import ein relativer Pfad oder ein absoluter Pfad sein, aber es kann kein Pfad sein, der auf einer Variablen
//import 路径不可以为变量 var url = './output' import { a, b } from url//这么写会报错 //------------------ //import 的引入与否不能和代码逻辑向关联 let status= true if(status){ import { a, b } from url//这么写会报错 }
Es gibt viele Importmethoden
import foo from './output' import {b as B} from './output' import * as OBj from './output' import {a} from './output' import {b as BB} from './output' import c, {d} from './output'
Die Importmethode hängt in gewisser Weise mit dem Export zusammen. Wir werden weiter unten darauf eingehen Führen Sie die oben genannten Importmethoden nacheinander aus.
exoprt und export default
Fügen Sie exoprt und export default zusammen, da sie eng miteinander verbunden sind
Einfach ausgedrückt: Export ist Export und Export Standard ist der Standardexport
Ein Modul kann mehrere Exporte haben, aber es kann nur einen Exportstandard geben.
Exportstandard ist der Standardexport export ist ein in {} eingeschlossenes Objekt. Es liegt in Form von Schlüssel-Wert-Paaren vor.Unterschiedliche Exportmethoden führen zu unterschiedlichen Importmethoden.
Daher wird empfohlen, dieselbe Import- und Exportmethode zu verwenden dasselbe Projekt, um die Entwicklung zu erleichtern
Export Nach der Standarddekonstruktion ist es ExportSehen Sie sich den Unterschied zwischen Export und Exportstandard anhand zweier intuitiver Demos an
Sehen wir uns zunächst einen Codeabschnitt an (Export)
output.js
const a = 'valueA1' export {a}
input.js
import {a} from './output.js'//此处的import {a}和export {a},两个a是一一对应关系 console.log(a)//=>valueA1
Beachten Sie, dass im obigen Code das von export {a} exportierte a das gleiche a ist wie das von import {a} importierte a.
Sehen Sie sich einen anderen Codeabschnitt an (Exportstandard)const a = 'valueA1' export default{a}
input js
import a from './output.js'//此处的a和export default{a},不是一个a, console.log(a)//=>{ a: 'valueA1' }
Sehen Sie sich die input.js in der Kastanie von Export Default an. Wir haben einige Änderungen vorgenommen.
import abc from './output.js'//此处的a和export default{a},不是一个a, console.log(abc)//=>{ a: 'valueA1' }
Wir haben einige Änderungen vorgenommen, aber die Ausgabe hat sich nicht geändert. Der Import erfolgt unter Exportstandard. Das Objekt kann unter einem beliebigen Namen aufgerufen werden, da es nur einen Exportstandard gibt.
Exoprt und Export default werden miteinander gemischt.
exoprt und export default werden gleichzeitig im selben Modul verwendet, was jedoch unterstützt wird. Wir tun dies im Allgemeinen nicht.
Sehen Sie sich eine Kastanie anoutput.js
const a = 'valueA1' const b = 'valueB1' const c = 'valueC1' const d = 'valueD1' function foo() { console.log(`foo执行,c的值是${c}`); } export {a} export {b} export default { b,d,foo}
input.js
import obj, {a,b } from './output' console.log(a); //=>valueA1 console.log(b); //=>valueB1 console.log(obj); //=>{ b: 'valueB1', d: 'valueD1', foo: [Function: foo] }
as rename
Export über exoprt und export default Wenn der Import eingeführt wird, unterstützt er das Umbenennen über
Schauen Sie mal Es ist immer noch die obige Ausgabedatei
const a = 'valueA1' const b = 'valueB1' const c = 'valueC1' const d = 'valueD1' function foo() { console.log(`foo执行,c的值是${c}`); } export {a} export {b} export default { b,d,foo}
input.js
import {a as A} from './output' import {* as A} from './output'//这是不支持的 import * as obj from './output' console.log(A); //=>valueA1 console.log(obj); //=>{ a: 'valueA1',default: { b: 'valueB1', d: 'valueD1', foo: [Function: foo] },b: 'valueB1' }
Die Variable nach as ist Die
, die Sie in input.js verwenden möchten, konzentriert sich auf diesen Teilimport {* as A} from './output'//这是不支持的 import * as obj from './output' console.log(obj); //=>{ a: 'valueA1',default: { b: 'valueB1', d: 'valueD1', foo: [Function: foo] },b: 'valueB1' }
stellt alles dar, einschließlich Export und Export standardmäßig exportiert
- Wir haben bereits gesagt, dass es eine Eins-zu-Eins-Entsprechung zwischen Import{} und Export{} gibt, also ist der Export im Export nicht unterstützt im Import{} >require, exports, module.exports (denken Sie an die folgenden s)
Dies ist die AMD-Spezifikation
require ist ein Laufzeitaufruf, daher ist require theoretisch überall im Code einsetzbar
require unterstützt dynamische EinführungDies wird beispielsweise unterstützt
let flag = true if (flag) { const a = require('./output.js') console.log(a); //支持 }
let flag = true
let url = './output.js'
if (flag) {
const a = require(url)
console.log(a); //支持
}
Nach dem Login kopieren
Einführung durch require ist ein Zuweisungsprozess exports und module.exportsGemäß AMD-Spezifikationen let flag = true let url = './output.js' if (flag) { const a = require(url) console.log(a); //支持 }
jede Datei ist ein Modul und hat ihren eigenen Umfang. In einer Datei definierte Variablen, Funktionen und Klassen sind privat und für andere Dateien nicht sichtbar.
In jedem Modul repräsentiert die Modulvariable das aktuelle Modul. Diese Variable ist ein Objekt und ihr Exportattribut (dh module.exports) ist die externe Schnittstelle. Beim Laden eines Moduls wird tatsächlich das module.exports-Attribut des Moduls geladen. Der Einfachheit halber stellt Node für jedes Modul eine Exportvariable bereit, die auf module.exports verweist. Dies entspricht einer Zeile wie dieser am Kopf jedes Moduls.const exports = module.exports;
Also
die folgenden beiden Schreibweisen sind gleichwertig
exports.a ='valueA1' module.exports.a='valueA1'
Wie bereits erwähnt, wird in jedem Modul eine Exportvariable bereitgestellt, die auf module.exports verweist.
Sie können exports also keinen Wert direkt zuweisen, die Zuweisung wird überschriebenconst exports = module.exports;
Wenn Sie exports direkt einen Wert zuweisen, wird die Beziehung zwischen exports und module.exports unterbrochen Sehen Sie sich ein Beispiel an
output.js
const a = 'valueA1' const b = 'valueB1' const c = 'valueC1' module.exports = { c} exports.b = b//当直接给 module.exports时,exports会失效 module.exports.a = a
const obj = require('./output.js') console.log(obj); //=>{ c: 'valueC1', a: 'valueA1' }
Schauen Sie sich den Code weiter an
output.js
//部分省略 exports.b = b//这样可以生效 module.exports.a = a
input.js
const obj = require('./output.js') console.log(obj); //=>{ b: 'valueB1', a: 'valueA1' }
Schauen Sie sich einen anderen Code an
output.js
//部分省略 module.exports = { c} module.exports.a = a
input.js
const obj = require('./output.js') console.log(obj); //=>{ c: 'valueC1', a: 'valueA1' }
当直接给 module.exports时,exports会失效
交叉使用
在ES6中export default 导出的是一个对象
在AMD中exports和module.exports导出的也都是一个对象
所以如果你手中的项目代码支持两种规范,那么事可以交叉使用的(当然不建议这么去做)
通过export导出的不一定是一个对象
demo1
output.js
//部分省略 module.exports = { c} module.exports.a = a
inputj.s
import obj from './output' import {a} from './output' console.log(a);//=>valueA1 console.log(obj);//=>{ c: 'valueC1', a: 'valueA1' }
demo2
output.js
const a = 'valueA1' const b = 'valueB1' const c = 'valueC1' function foo() { console.log(`foo执行,c的值是${c}`); } export {a} export default {b,c,foo} export {b}
input.js
const a = require('./output.js') console.log(a); //=>{ a: 'valueA1',default: { b: 'valueB1', c: 'valueC1', foo: [Function: foo] }, b: 'valueB1' }
总结
- require,exports,module.export属于AMD规范,import,export,export default属于ES6规范
- require支持动态导入,动态匹配路径,import对这两者都不支持
- require是运行时调用,import是编译时调用
- require是赋值过程,import是解构过程
- 对于export和export default 不同的使用方式,import就要采取不同的引用方式,主要区别在于是否存在{},export导出的,import导入需要{},导入和导出一一对应,export default默认导出的,import导入不需要{}
- exports是module.export一种简写形式,不能直接给exports赋值
当直接给module.export赋值时,exports会失效
本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的JavaScript视频教程栏目!
Das obige ist der detaillierte Inhalt vonVergleich von Import und Export von AMD- und ES6-Modulen in JavaScript (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Verwendung: In JavaScript wird die Methode insertBefore() verwendet, um einen neuen Knoten in den DOM-Baum einzufügen. Diese Methode erfordert zwei Parameter: den neuen Knoten, der eingefügt werden soll, und den Referenzknoten (d. h. den Knoten, an dem der neue Knoten eingefügt wird).

JavaScript ist eine in der Webentwicklung weit verbreitete Programmiersprache, während WebSocket ein Netzwerkprotokoll für die Echtzeitkommunikation ist. Durch die Kombination der leistungsstarken Funktionen beider können wir ein effizientes Echtzeit-Bildverarbeitungssystem erstellen. In diesem Artikel wird erläutert, wie dieses System mithilfe von JavaScript und WebSocket implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die Anforderungen und Ziele des Echtzeit-Bildverarbeitungssystems klären. Angenommen, wir haben ein Kameragerät, das Bilddaten in Echtzeit sammeln kann
