Junior
Модулҳои ES чистанд?
sobes.tech AI
Ҷавоб аз AI
Модулҳои ES — ин усули стандартӣ барои ташкил кардани коди JavaScript мебошанд, ки асос ёфтаанд ба синтаксиси import ва export.
Хусусиятҳои асосӣ:
- Стандарт: Як қисми спецификацияи ECMAScript, ки аз ҷониби бештари браузерҳои муосир ва муҳитҳои иҷроиш, ба монанди Node.js, дастгирӣ мешавад.
- Идоракунии равшанонаи вобастагиҳо: Модулҳо равшан нишон медиҳанд, ки кадом арзишҳоро экспорти мекунанд ва кадомҳоро аз дигар модулҳо ворид мекунанд.
- Структура статикӣ: Вобастагиҳои модулҳо дар марҳилаи компилятсия (ё парсинг) муайян карда мешаванд, на дар вақти иҷро. Ин ба воситаи воситаҳои таҳлили статикӣ, монанди бандлёрҳо (Webpack, Rollup), имкон медиҳад, ки кодро оптимизатсия кунанд.
- Изоляция: Ҳар тағйирёбанда, функсия ё синфи, ки дар дохили модул эълон шудааст, ба таври пешфарз маҳаллӣ барои ҳамин модул аст. Барои дастрас шудан ба берун, онҳо бояд равшан экспортида шаванд.
- Дастгирии асинхронӣ: Модулҳо метавонанд дар браузерҳо асинхронона бор карда шаванд, бе бастани боркунии саҳифа.
Синтаксис:
- Экспорт:
// 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-модулҳо ҳамчун рӯҳияи муосир барои рушди фронтенд тавсия дода мешавад, ки бо стандартикунонии онҳо, дастгирии беҳтар аз ҷониби воситаҳо ва имконияти таҳлили статикӣ шароит фароҳам меорад.