JS मॉड्यूल्स
In this page:
export const name = value;
export default value;
import { name } from "./file.js";
import defaultName from "./file.js";
export और import की बुनियादी बातें
export किसी function, variable, या class को दूसरी files के इस्तेमाल के लिए उपलब्ध बना देता है, और import उस exported item को किसी दूसरी file में लाता है ताकि वहाँ भी इस्तेमाल हो सके।
उदाहरण: export and import Basics
// math.js
export function add(a, b) { return a + b; }
// main.js
import { add } from './math.js';
console.log(add(2, 3));
Default Exports
एक default export किसी module की मुख्य चीज़ को represent करता है, और इसे बिना curly braces के import किया जाता है, importing file जो भी नाम चुने उसके साथ।
एक file में सिर्फ एक ही default export हो सकता है, इसीलिए इसे आमतौर पर किसी module के primary function, class, या component के लिए इस्तेमाल किया जाता है।
उदाहरण: Default Exports
// user.js
export default function createUser(name) { return { name }; }
// main.js
import createUser from './user.js';
console.log(createUser("Sam"));
Named Exports
Named exports एक single file को कई distinct values export करने देते हैं, हर एक को उसके exact exported name से अलग-अलग import किया जाता है, importing side पर curly braces में लपेटा हुआ। एक module एक single default export के साथ कई named exports को बेझिझक मिला सकता है।
उदाहरण: Named Exports
// utils.js
export const PI = 3.14;
export function double(n) { return n * 2; }
// main.js
import { PI, double } from './utils.js';
console.log(PI, double(5));
Script Tag में type="module" इस्तेमाल करना
किसी script tag में type=module जोड़ना browser को उस script को एक ES module की तरह treat करने के लिए कहता है, जो import और export syntax को सक्षम करता है, और script को page parse होने तक अपने आप defer कर देता है।
उदाहरण: Using type="module" in a Script Tag
<script type="module">
// Import `{ add }` from the `./math.js` module
import { add } from './math.js';
// Print `add(1, 2)` to the console
console.log(add(1, 2));
</script>
Module Scope
हर module का अपना private top-level scope होता है, यानी एक module file में declared variables और functions दूसरी file में अपने आप दिखाई नहीं देते, जब तक कि उन्हें explicitly export और import न किया जाए।
उदाहरण: Module Scope
// counter.js
let count = 0; // private to this module, not visible elsewhere
export function increment() { return ++count; }
- script tag में type=module जोड़ना भूल जाना, इसके बिना export और import statements एक syntax error throw करते हैं।
- default exports और named exports को मिला देना, उनका import syntax अलग है और उन्हें एक-दूसरे की जगह इस्तेमाल नहीं किया जा सकता।
- बिना server के local file system से सीधे किसी module को load करने की कोशिश करना, browsers security कारणों से file:// protocol पर module imports block कर देते हैं।
- export किसी function, variable, या class को दूसरी files के लिए उपलब्ध कराता है, और import उसे उस दूसरी file में लाता है जिसे उसकी ज़रूरत है।
- एक default export किसी module की मुख्य चीज़ होती है, जबकि named exports एक file से कई अलग-अलग exports allow करते हैं।
- import और export इस्तेमाल करने के लिए script tag में type=module जोड़ना ज़रूरी है, और modules automatically अपने खुद के private scope में चलते हैं।
type=module वाले native ES modules को लगभग 2018 से सभी major browsers में support मिला है और अब यह web platform का पूरी तरह standard हिस्सा है।
Chapter Quiz — Complete all 26 topics to unlock
0/26 topics done
Complete these topics first:
- JS Dates
- JS Math
- JS Conditionals
- JS Switch
- JS Loop For
- JS Loop While
- JS Iterables
- JS Sets
- JS Maps
- JS typeof
- JS Type Conversion
- JS Destructuring
- JS Arrow Functions
- JS Classes
- JS Modules
- JS Promises
- JS Async/Await
- JS DOM
- JS DOM Methods
- JS Events Advanced
- JS DOM Navigation
- JS DOM Collections
- JS Async Callbacks
- JS Async Parallel
- JS Date Set
- JS Set Logic