مرکزی مواد پر جائیں
ماڈیول 8 · سبق 1 از 4کورس میں 29/32~12 min
ماڈیول اسباق (1/4)

ESM ماڈیولز: درآمد / برآمد

جب کوئی پروگرام بڑھتا ہے تو سب کچھ ایک فائل میں رکھنا عجیب ہو جاتا ہے۔ جدید جاوا اسکرپٹ ES ماڈیولز (ESM) کے ساتھ مسئلہ حل کرتا ہے: ہر فائل ایک ماڈیول ہے جو برآمد کر سکتی ہے۔ فنکشن، مستقل، کلاسز، اور دیگر فائلیں انہیں درآمد کر سکتی ہیں۔

export

آپ جس چیز کو عوامی بنانا چاہتے ہیں اسے برآمد کرتے ہیں۔ دو صورتیں:

JS
// somma.js
export function somma(a, b) {
  return a + b;
}

export const PI = 3.14159;

یا، فائل کے آخر میں:

JS
function somma(a, b) {
  return a + b;
}
const PI = 3.14159;
export { somma, PI };

import

دوسری فائل سے:

JS
// app.js
import { somma, PI } from './somma.js';

console.log(somma(1, 2)); // 3
console.log(PI); // 3.14159

آبجیکٹ { somma, PI } ناموں کی فہرست ہے جسے آپ درآمد کرنا چاہتے ہیں۔ انہیں ملنا چاہئے۔ برآمد کردہ نام

پہلے سے طے شدہ برآمد

ہر ماڈیول میں بغیر نام کے ایک "مین" ایکسپورٹ ہو سکتا ہے:

JS
// log.js
export default function log(msg) {
  console.log('[app]', msg);
}

آپ اسے مقامی طور پر نام منتخب کرکے درآمد کرتے ہیں:

JS
import log from './log.js';
log('ciao');

نام بدلنا

JS
import { somma as plus } from './somma.js';
export { somma as add } from './somma.js'; // re-export

فی فائل ایک "نام کی جگہ"

ماڈیولز ** الگ تھلگ** ہیں: فائل میں اعلان کردہ متغیر عالمی دائرہ کار میں ختم نہیں ہوتا ہے۔ آپ اسے کسی اور جگہ دکھائی دینے کے لیے اسے واضح طور پر ایکسپورٹ کرنا ہوگا۔ یہ ایک بہت بڑی بہتری ہے۔ پرانے اسکول JS جہاں ہر <script> نے اشتراک کیا window۔

اسے آزمائیں

ذیل کی مشقوں میں آپ اصلی import/export نحو نہیں لکھیں گے — سینڈ باکس ایک واحد ہے فائل اس کے بجائے، ہم آپ سے کوڈ کو چھوٹے الگ فنکشنز میں ترتیب دینے کو کہیں گے۔ تعاون کریں، جیسا کہ آپ کریں گے اگر ہر ایک مختلف فائل میں ہوتا۔

ورزش#js.m8.l1.e1
کوششیں: 0لوڈ ہو رہا ہے…

دو الگ الگ فنکشنز کی وضاحت کریں: `square(n)` (n*n) اور `sumOfSquares(a, b)` جو مربع استعمال کرتا ہے۔ مربع کو فائل سے 'برآمد' کے طور پر سوچیں اور sumOfSquares کے ذریعہ دوبارہ استعمال کیا گیا ہے۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

sumOfSquares(a,b) = مربع(a) + مربع(b)

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش کا جائزہ لیں۔

ورزش#js.m8.l1.e2
کوششیں: 0لوڈ ہو رہا ہے…

`isEven(n)` (سچ ہے اگر n برابر ہے) اور `countEven(arr)` کی وضاحت کریں جو isEven کا استعمال کسی صف میں یکساں عناصر کو شمار کرنے کے لیے کرتا ہے۔ انہیں دو الگ الگ افعال کے طور پر رکھیں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

arr.filter(isEven)۔لمبائی

3 کوششوں کے بعد حل دستیاب ہے۔