Junior
Cum funcționează operatorii import și export în JavaScript?
sobes.tech AI
Răspuns de la AI
Operatorii import și export sunt utilizați în JavaScript pentru a lucra cu module, permițând împărțirea codului în părți independente, reutilizabile și gestionarea dependențelor dintre ele.
export
Operatorul export este folosit pentru a exporta variabile, funcții, clase sau alte valori dintr-un modul. Exportul poate fi numit sau implicit.
Export numit:
// module.js
export const myVariable = 10;
export function myFunction() { // ... }
export class MyClass { // ... }
Export implicit: un modul poate avea doar un export implicit.
// module.js
const defaultValue = 'default value';
export default defaultValue;
import
Operatorul import este folosit pentru a importa valorile exportate de alte module.
Import numit:
// another-module.js
import { myVariable, myFunction } from './module.js';
Import cu alt nume:
// another-module.js
import { myVariable as newVariableName } from './module.js';
Importarea tuturor numelor exportate ca obiect:
// another-module.js
import * as moduleAlias from './module.js';
// Acces: moduleAlias.myVariable, moduleAlias.myFunction
Importarea exportului implicit:
// another-module.js
import defaultValueName from './module.js';
Importarea simultană a exportului numit și a celui implicit:
// another-module.js
import defaultValueName, { myVariable, myFunction } from './module.js';
Principii de funcționare:
- Analiza statică: Motorul JavaScript analizează operatorii
importșiexportîn timpul compilării (înainte de executarea codului), creând un grafic de dependențe între module. - "Legături" vii: Variabilele importate nu sunt copii ale valorilor din modulul exportator. Acestea sunt "legături" vii (referințe vii) către variabilele din modulul original. Dacă valoarea unei variabile în modulul exportator se schimbă, această schimbare va fi vizibilă prin legătura importată.
- Executare unică: Codul fiecărui modul se execută o singură dată la prima importare a acestuia. Rezultatele exportului sunt stocate în cache și utilizate la importurile ulterioare.
- Utilizare în context: Modulele sunt executate în propriul lor context, izolate de domeniul global. Variabilele declarate în rădăcina modulului nu poluează spațiul global, cu excepția cazului în care sunt exportate explicit.