Sobes.tech
Junior

Ի՞նչ են ES մոդուլները։

sobes.tech AI

Պատասխան AI-ից

ES մոդուլները ստանդարտ եղանակ են JavaScript- ում կոդը կազմակերպելու համար, հիմնված import և export սինտաքսի վրա:

Հիմնական առանձնահատկությունները՝

  • Стандарт: ECMAScript-ի մաս, որը աջակցվում է շատ ժամանակակից բրաուզերների և գործարկման միջավայրերի կողմից, ինչպիսիք են Node.js-ը:
  • Արագ կառավարման կախվածությունները: Մոդուլները հստակ նշում են, թե որ արժեքներն են արտահանում և որ արժեքներն են ներմուծում այլ մոդուլներից:
  • Ստատիկ կառուցվածք: Մոդուլների կախվածությունները որոշվում են կոմպիլյացիայի (կամ վերլուծության) փուլում, ոչ թե գործարկման ժամանակ:
  • Անջատում: Յուրաքանչյուր փոփոխական, ֆունկցիա կամ դաս, որը հայտարարված է մոդուլի ներսում, որպես կանոն, տեղական է այդ մոդուլի համար:
  • Ասինխրոնության աջակցություն: Մոդուլները կարող են բեռնել ասինխրոնապես բրաուզերներում, առանց էջի բեռնումը խոչընդոտելու:

Սինտաքսիս:

  • Եկամտի արտահանում:
    // app.js
    export const myVariable = 123; // Անվանումով արտահանում
    export function myFunction() { // Անվանումով արտահանում
      console.log('Hello from module!');
    }
    export default class MyClass { // Դեֆոլտ արտահանում
      constructor() {
        console.log('MyClass instance created');
      }
    }
    
  • Ներմուծում:
    // main.js
    import { myVariable, myFunction } from './app.js'; // Անվանումով ներմուծում
    import MyDefaultClass from './app.js'; // Դեֆոլտ ներմուծում
    
    console.log(myVariable); // 123
    myFunction(); // Hello from module!
    const instance = new MyDefaultClass(); // MyClass instance created
    

Համեմատություն CommonJS-ի հետ (Node.js):

Հատկություն ES-мոդուլներ CommonJS
Սինտաքսիս import, export require, module.exports, exports
Զависимости Ստատիկ (որոշվում է նախքան գործարկումը) Դինամիկ (որոշվում է գործարկման ժամանակ)
Բեռնում Ասինխրոն (բրաուզերներում) Սինխրոն
this հիմնականում undefined module.exports
Աջակցություն Բրաուզերներ, Node.js (առանցքային տարբերակ 13.2-ից սկսած, ֆլագ --experimental-modules-ով մինչև այդ) Հիմնականում Node.js

Օգտագործել ES-мոդուլները որպես ժամանակակից մոտեցում առաջադեմ ֆրոնտենդ զարգացման համար, քանի որ դրանք ստանդարտացված են, լավ աջակցություն ունեն գործիքների կողմից և հնարավորություն են տալիս ստատիկ վերլուծության։