Junior
Kaip veikia import ir export operatoriai JavaScript?
sobes.tech AI
Atsakymas iš AI
„import“ ir „export“ operatoriai naudojami darbui su moduliais JavaScript, leidžiant skaidyti kodą į nepriklausomas, daugkart naudojamas dalis ir valdyti tarpusavio priklausomybes.
export
„export“ operatorius naudojamas eksportuoti kintamuosius, funkcijas, klases ar kitas reikšmes iš modulio. Eksportas gali būti vardinis arba numatytasis.
Vardinis eksportas:
// module.js
export const myVariable = 10;
export function myFunction() { // ... }
export class MyClass { // ... }
Numatytasis eksportas: modulyje gali būti tik vienas numatytasis eksportas.
// module.js
const defaultValue = 'default value';
export default defaultValue;
import
„import“ operatorius naudojamas importuoti reikšmes, eksportuotas kitų modulių.
Vardinis importas:
// another-module.js
import { myVariable, myFunction } from './module.js';
Importas su kitu pavadinimu:
// another-module.js
import { myVariable as newVariableName } from './module.js';
Importuoti visus vardinius eksportus kaip objektą:
// another-module.js
import * as moduleAlias from './module.js';
// Prieiga: moduleAlias.myVariable, moduleAlias.myFunction
Numatytasis eksportas:
// another-module.js
import defaultValueName from './module.js';
Vardinio ir numatytojo eksporto importavimas vienu metu:
// another-module.js
import defaultValueName, { myVariable, myFunction } from './module.js';
Veikimo principai:
- Statinė analizė: JavaScript variklis analizuoja
importirexportoperatorius kodo kompiliacijos metu, kuriant priklausomybių grafiką. - "Gyvos" nuorodos: Importuotos kintamosios nėra kopijos iš eksportuojančio modulio reikšmių. Tai yra "gyvos" nuorodos (gyvos nuorodos) į originalų modulį. Jei eksportuojančio modulio reikšmė pasikeičia, tai bus matoma per importuotą nuorodą.
- Vienkartinis vykdymas: Kodo kiekvienas modulis vykdomas tik kartą pirmą kartą importuojant. Eksportų rezultatai yra talpinami į cache ir naudojami vėlesniuose importuose.
- Naudojimas kontekste: Moduliai vykdomi savo kontekste, izoliuotame nuo globalios aplinkos. Kintamieji, deklaruoti modulyje, neapsunkina globalios erdvės, jei jie nėra aiškiai eksportuoti.