Modules

در جاوااسکریپت، Modules به ما امکان می‌دهند کد را به بخش‌های کوچک و مستقل تقسیم کنیم و آن‌ها را به صورت قابل استفاده مجدد در فایل‌های دیگر ایمپورت کنیم.
استفاده از Modules باعث مدیریت بهتر، خوانایی بیشتر و جلوگیری از تداخل نام‌ها می‌شود.

🔹 تعریف و استفاده از Module

1. Export کردن مقادیر

Export نامی (Named Export)

// file: math.js export const pi = 3.14; export function add(a, b) { return a + b; }

Export پیش‌فرض (Default Export)

// file: greet.js export default function greet(name) { console.log("Hello " + name); }

2. Import کردن مقادیر

Import نامی (Named Import)

// file: app.js import { pi, add } from './math.js'; console.log(pi); // 3.14 console.log(add(2, 3)); // 5

Import پیش‌فرض (Default Import)

import greet from './greet.js'; greet("Ali"); // Hello Ali

3. Import همه مقادیر با *

import * as math from './math.js'; console.log(math.pi); // 3.14 console.log(math.add(2,3)); // 5

🔹 نکات کلیدی Modules

  • هر فایل به طور پیش‌فرض در حالت strict است.

  • Modules دارای Scope مستقل هستند و متغیرها در سطح global قرار نمی‌گیرند.

  • می‌توان چندین Named Export در یک فایل داشت، اما یک Default Export بیشتر نداریم.

  • برای استفاده در مرورگر، باید <script type="module"> استفاده شود:

<script type="module" src="app.js"></script>

✅ خلاصه

  • Modules → تقسیم کد به فایل‌های کوچک و مستقل

  • Export → تعریف مقادیری که قابل استفاده در فایل دیگر باشند

  • Import → استفاده از مقادیر Export شده

  • انواع Export: Named و Default

  • هر Module دارای Scope مستقل است و به صورت پیش‌فرض strict mode فعال دارد