Sobes.tech
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:

  1. Statinė analizė: JavaScript variklis analizuoja import ir export operatorius kodo kompiliacijos metu, kuriant priklausomybių grafiką.
  2. "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ą.
  3. Vienkartinis vykdymas: Kodo kiekvienas modulis vykdomas tik kartą pirmą kartą importuojant. Eksportų rezultatai yra talpinami į cache ir naudojami vėlesniuose importuose.
  4. Naudojimas kontekste: Moduliai vykdomi savo kontekste, izoliuotame nuo globalios aplinkos. Kintamieji, deklaruoti modulyje, neapsunkina globalios erdvės, jei jie nėra aiškiai eksportuoti.