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 объектисин түзүү
CommonJS менен салыштыруу (Node.js):
| Өзгөчөлүк | ES-модулдер | CommonJS |
|---|---|---|
| Синтаксис | import, export |
require, module.exports, exports |
| Тасымалдар | Статикалык (ишке ашырылгандан алдын аныкталган) | Динамикалык (ишке ашырылгандан кийин аныкталган) |
| Жүктөө | Асинхрондуу (браузерлерде) | Синхрондуу |
this негизги |
undefined |
module.exports |
| Колдоо | Браузерлер, Node.js (негизинен 13.2 версиясинен баштап, --experimental-modules флагы менен мурда) | Башкача Node.js |
ES-модулдерди колдонуу — заманбап фронтенд өнүктүрүүдө стандартташтырылган, инструменттер тарабынан жакшы колдоого алынган жана статикалык талдоо мүмкүнчүлүгүн камсыз кылган ыкма.