தொகுதி பாடங்கள் (1/4)
ESM தொகுதிகள்: இறக்குமதி / ஏற்றுமதி
ஒரு நிரல் வளரும்போது, அனைத்தையும் ஒரே கோப்பில் வைத்திருப்பது அருவருப்பானது. நவீன ஜாவாஸ்கிரிப்ட் ** ES தொகுதிகள் (ESM)** உடன் சிக்கலை தீர்க்கிறது: ஒவ்வொரு கோப்பும் ஏற்றுமதி செய்யக்கூடிய ஒரு தொகுதி ஆகும். செயல்பாடுகள், மாறிலிகள், வகுப்புகள் மற்றும் பிற கோப்புகளை இறக்குமதி செய்யலாம்.
export
நீங்கள் பகிரங்கப்படுத்த விரும்புவதை ஏற்றுமதி செய்கிறீர்கள். இரண்டு வடிவங்கள்:
// somma.js
export function somma(a, b) {
return a + b;
}
export const PI = 3.14159;அல்லது, கோப்பின் முடிவில்:
function somma(a, b) {
return a + b;
}
const PI = 3.14159;
export { somma, PI };import
மற்றொரு கோப்பிலிருந்து:
// app.js
import { somma, PI } from './somma.js';
console.log(somma(1, 2)); // 3
console.log(PI); // 3.14159பொருள் { somma, PI } என்பது நீங்கள் இறக்குமதி செய்ய விரும்பும் பெயர்களின் பட்டியல். அவை பொருந்த வேண்டும்
ஏற்றுமதி செய்யப்பட்ட பெயர்கள்.
இயல்புநிலை ஏற்றுமதி
ஒவ்வொரு தொகுதியும் பெயர் இல்லாமல் ஒன்று "முக்கிய" ஏற்றுமதியைக் கொண்டிருக்கலாம்:
// log.js
export default function log(msg) {
console.log('[app]', msg);
}உள்ளூரில் பெயரைத் தேர்ந்தெடுப்பதன் மூலம் அதை இறக்குமதி செய்கிறீர்கள்:
import log from './log.js';
log('ciao');மறுபெயரிடுதல்
import { somma as plus } from './somma.js';
export { somma as add } from './somma.js'; // re-exportஒரு கோப்பிற்கு ஒரு "பெயர்வெளி"
தொகுதிகள் ** தனிமைப்படுத்தப்பட்டவை**: ஒரு கோப்பில் அறிவிக்கப்பட்ட ஒரு மாறி உலகளாவிய நோக்கத்தில் முடிவடையாது. நீங்கள்
அதை வேறு எங்கும் காணும்படி வெளிப்படையாக ஏற்றுமதி செய்ய வேண்டும். இது ஒரு பெரிய முன்னேற்றம்
ஒவ்வொரு <script> window ஐப் பகிர்ந்துள்ள பழைய பள்ளி JS.
முயற்சி செய்து பாருங்கள்
கீழே உள்ள பயிற்சிகளில் நீங்கள் இல்லை உண்மையான import/export தொடரியல் எழுதுவீர்கள் — சாண்ட்பாக்ஸ் ஒற்றை
கோப்பு. அதற்கு பதிலாக, குறியீட்டை சிறிய தனித்தனி செயல்பாடுகளாக ஒழுங்கமைக்குமாறு கேட்டுக்கொள்வோம்
நீங்கள் ஒவ்வொருவரும் வெவ்வேறு கோப்பில் இருந்தால் ஒத்துழைக்கவும்.
இரண்டு தனித்தனி செயல்பாடுகளை வரையறுக்கவும்: சதுரத்தைப் பயன்படுத்தும் `square(n)` (returns n*n) மற்றும் `sumOfSquares(a, b)`. சதுரத்தை ஒரு கோப்பிலிருந்து 'ஏற்றுமதி செய்யப்பட்டதாக' நினைத்து, sumOfSquares ஆல் மீண்டும் பயன்படுத்தப்பட்டது.
குறிப்பைக் காட்டு
sumOfSquares(a,b) = square(a) + square(b)
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
ஒரு வரிசையில் உள்ள உறுப்புகளை எண்ணுவதற்கு isEven ஐப் பயன்படுத்தும் `isEven(n)` (n என்றால் சரி) மற்றும் `countEven(arr)` என்பதை வரையறுக்கவும். அவற்றை இரண்டு தனித்தனி செயல்பாடுகளாக வைத்திருங்கள்.
குறிப்பைக் காட்டு
arr.filter(isEven).நீளம்
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்