ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 8 · 4లో పాఠం 1కోర్సులో 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లోడ్ అవుతోంది...

రెండు వేర్వేరు ఫంక్షన్‌లను నిర్వచించండి: స్క్వేర్‌ని ఉపయోగించే `స్క్వేర్(n)` (రిటర్న్‌లు n*n) మరియు `sumOfSquares(a, b)`. స్క్వేర్‌ని ఫైల్ నుండి 'ఎగుమతి'గా భావించండి మరియు sumOfSquares ద్వారా మళ్లీ ఉపయోగించబడింది.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

sumOfSquares(a,b) = square(a) + square(b)

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం సమీక్షించండి

వ్యాయామం#js.m8.l1.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

శ్రేణిలోని సమాన మూలకాలను లెక్కించడానికి isEvenని ఉపయోగించే `isEven(n)` (n సరి అయితే నిజం) మరియు `countEven(arr)`ని నిర్వచించండి. వాటిని రెండు వేర్వేరు విధులుగా ఉంచండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

arr.filter(isEven).పొడవు

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది