أساسيات ESM — import/export والافتراضي مقابل المسمى
تعلّموا أساسيات import/export في ESM: ماهية الوحدة، والتصديرات المسماة مقابل الافتراضية، واستيرادات namespace، ومقارنة موجزة مع CommonJS
أساسيات ESM — import/export والافتراضي مقابل المسمى درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
ما الوحدة النمطية؟
الهدف: قراءة صياغة الوحدات النمطية بثقة.
- ما هي الوحدة النمطية
- التصديرات المسماة مقابل الافتراضية
- import * بوصفه مساحة أسماء
- لمحة سريعة عن CJS

الوحدة النمطية = ملف + نطاق محلي
الوحدة النمطية عبارة عن ملف. تكون متغيراتها محلية ما لم تقم بـexport لها.
// A module is just a file with its own scope
// Here we simulate "module scope" by keeping variables local.
(function () {
const secret = 42; // local to this file/scope
function reveal() { return "value:" + secret; }
console.log("module-like scope:", typeof secret === "number", reveal());
})();
التصديرات المسماة — الفكرة
تستخدم التصديرات المسماة الأقواس المعقوفة عند الاستيراد: import { name }. ويمكنك تصدير عدة عناصر من ملف واحد.
// Named exports: you export multiple items by name
const exampleNamedExport = [
"export const PI = 3.14;",
"export function sum(a, b) { return a + b; }",
"import { PI, sum } from \\"./math.js\\";"
];
console.log("named export example:");
for (const line of exampleNamedExport) console.log(line);
// Tiny emulation: pretend we imported two named symbols
const PI = 3.14;
function sum(a, b) { return a + b; }
console.log("emulated use:", PI, sum(2, 3));
التصدير الافتراضي — الفكرة
يُستورد التصدير الافتراضي من دون أقواس معقوفة: import name from "path".
// Default export: each module can have at most one default
const exampleDefault = [
"export default function greet(name) { return \\"Hi \\" + name; }",
"import greet from \\"./greet.js\\"; // no braces"
];
console.log("default export example:");
for (const line of exampleDefault) console.log(line);
// Emulation of default import usage
function greet(name) { return "Hi " + name; }
console.log("emulated default:", greet("Ayla"));
الاستيراد في مساحة أسماء
يجمع import * as ns التصديرات المسماة في كائن واحد، مثل math.sum.
// Namespace import collects all named exports under one object
const exampleNamespace = [
"import * as math from \\"./math.js\\";",
"console.log(math.PI, math.sum(1, 2));"
];
console.log("namespace import example:");
for (const line of exampleNamespace) console.log(line);
// Emulate a namespace object
const math = { PI: 3.14, sum: function (a, b) { return a + b; } };
console.log("namespace use:", math.PI, math.sum(4, 5));
التباين بين CJS و ESM وملاحظات الحل
CJS مقابل ESM (لمحة):
- ESM: صياغة import/export، وهي ثابتة. مثال: import { x } from "./m.js".
- CJS: صياغة require/module.exports، وهي ديناميكية. مثال: const x = require("./m.js").
- في ESM، استخدم امتدادات الملفات الصريحة في المتصفح وفي العديد من إعدادات Node، مثل ./file.js.

اختبار الاستيراد المسمى مقابل الافتراضي
تحقّق سريع: صياغة الاستيراد المسمى.

مراجعة
مراجعة: الوحدة النمطية ملف. استخدم التصديرات المسماة مع الأقواس المعقوفة، وتصديرًا افتراضيًا واحدًا من دون أقواس، وimport * لمساحة أسماء. يستخدم CJS التعبير require، بينما يستخدم ESM التعبير import.

الأسئلة الشائعة
هل درس «أساسيات ESM — import/export والافتراضي مقابل المسمى» مجاني؟
نعم — نص درس «أساسيات ESM — import/export والافتراضي مقابل المسمى» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «أساسيات ESM — import/export والافتراضي مقابل المسمى»؟
تعلّموا أساسيات import/export في ESM: ماهية الوحدة، والتصديرات المسماة مقابل الافتراضية، واستيرادات namespace، ومقارنة موجزة مع CommonJS تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «أساسيات ESM — import/export والافتراضي مقابل المسمى»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات ESM — import/export والافتراضي مقابل المسمى
- أساسيات CommonJS — require/module.exports وexports
- حلّ الوحدات في Node وحزم المتصفح