Antworten:
In ES6 sind import
s schreibgeschützte Live-Ansichten für exportierte Werte. Infolgedessen import a from "somemodule";
können Sie in diesem Fall keine Zuordnung vornehmen, a
unabhängig davon, wie Sie dies deklarierena
im Modul .
Da es sich bei importierten Variablen jedoch um Live- Ansichten handelt, ändern sie sich beim Export entsprechend der exportierten "rohen" Variablen. Betrachten Sie den folgenden Code (aus dem folgenden Referenzartikel entlehnt):
//------ lib.js ------
export let counter = 3;
export function incCounter() {
counter++;
}
//------ main1.js ------
import { counter, incCounter } from './lib';
// The imported value `counter` is live
console.log(counter); // 3
incCounter();
console.log(counter); // 4
// The imported value can’t be changed
counter++; // TypeError
Wie Sie sehen können, liegt der Unterschied wirklich darin lib.js
, nicht main1.js
.
Zusammenfassen:
import
-ed-Variablen nicht zuweisen , unabhängig davon, wie Sie die entsprechenden Variablen im Modul deklarieren.let
-vs- const
Semantik gilt für die deklarierte Variable im Modul.
const
, kann sie nirgendwo neu zugewiesen oder zurückgebunden werden.let
, kann sie nur im Modul neu zugewiesen werden (nicht jedoch im Benutzer). Wenn es geändert wird, import
ändert sich die Variable -ed entsprechend.
export
Keyword-Details hier . Derzeit wird es von keinem der Webbrowser nativ unterstützt.