Junior
Kako funkcionišu operatori import i export u JavaScript-u?
sobes.tech АИ
Одговор од АИ
Оператори import и export се користе за рад са модулима у JavaScript-у, омогућавајући раздвајање кода на независне, вишекратно коришћене делове и управљање зависностима између њих.
export
Оператор export се користи за извоз променљивих, функција, класа или других вредности из модула. Извоз може бити именован или подразумевани.
Именовани извоз:
// module.js
export const myVariable = 10;
export function myFunction() { // ... }
export class MyClass { // ... }
Подразумевани извоз: у модулу може бити само један подразумевани извоз.
// module.js
const defaultValue = 'default value';
export default defaultValue;
import
Оператор import се користи за увоз вредности које су извозиле друге модуле.
Именовани увоз:
// another-module.js
import { myVariable, myFunction } from './module.js';
Увоз са другим именом:
// another-module.js
import { myVariable as newVariableName } from './module.js';
Увоз свих именованих извозa у облику објекта:
// another-module.js
import * as moduleAlias from './module.js';
// Доступ: moduleAlias.myVariable, moduleAlias.myFunction
Увоз подразумеваног извозa:
// another-module.js
import defaultValueName from './module.js';
Увоз и именованог и подразумеваног извозa истовремено:
// another-module.js
import defaultValueName, { myVariable, myFunction } from './module.js';
Принципи рада:
- Статичка анализа: JavaScript мотор анализира операторе
importиexportтоком компилације (пре извршавања кода), стварајући граф зависности између модула. - "Живе" везе: Увезене променљиве нису копије вредности из извозног модула. То су "живе" везе (живе референце) на променљиве из извора. Ако се вредност променљиве у извозном модулу промени, то ће бити видљиво преко увезене везе.
- Једнократно извршавање: Код сваког модула се извршава само једном при првом увозу тог модула. Резултати извозa се кеширају и користе у каснијим увозима.
- Користи у контексту: Модуле се извршавају у својој сопственој средини, изолованој од глобалног окружења. Променљиве које су проглашене у корену модула не загађују глобални простор имена, ако нису експлицитно извозене.