ஜாவாஸ்கிரிப்ட் செயல்பாடு வரையறுக்கப்படாத பிழை (ஆனால் அது வரையறுக்கப்பட்டுள்ளது)

Javaskiript Ceyalpatu Varaiyarukkappatata Pilai Anal Atu Varaiyarukkappattullatu



ஜாவாஸ்கிரிப்டில், ' செயல்பாடு வரையறுக்கப்படவில்லை ” என்பது ஒரு பொதுவான பிழை, நிரல் தற்போதைய நோக்கத்தில் அறிவிக்கப்படாத அல்லது வரையறுக்கப்படாத ஒரு செயல்பாட்டைப் பயன்படுத்த முயற்சிக்கும் போது ஏற்படும். இந்த பிழை செய்தி குழப்பமாக இருக்கலாம், ஏனெனில் சில நேரங்களில் செயல்பாடு உண்மையில் குறியீட்டில் வரையறுக்கப்படுகிறது, ஆனால் அது இன்னும் பிழையில் விளைகிறது.

இந்த கட்டுரை JavaScript 'செயல்பாடு வரையறுக்கப்படாத பிழை' விவரிக்கப்படும் போது விவரிக்கும்.

ஜாவாஸ்கிரிப்ட் செயல்பாடு வரையறுக்கப்படாத பிழை (ஆனால் அது வரையறுக்கப்பட்டுள்ளது)

சில நேரங்களில், செயல்பாடு குறியீட்டில் வரையறுக்கப்படுகிறது, ஆனால் இன்னும், நீங்கள் பின்வரும் பிழையை எதிர்கொள்ளலாம்:









செயல்பாட்டை வரையறுத்த பிறகு மேலே உள்ள பிழை ஏற்படுவதற்கு இரண்டு முக்கிய காரணங்கள் உள்ளன, அவை கீழே பட்டியலிடப்பட்டுள்ளன:



காரணம் 1: செயல்பாடு தவறாக எழுதப்பட்டுள்ளது அல்லது தவறான பெரியெழுத்து உள்ளது

சில நேரங்களில், செயல்பாடு தவறான எழுத்துப்பிழைகளுடன் அழைக்கப்படுகிறது. ஜாவாஸ்கிரிப்ட் கேஸ்-சென்சிட்டிவ் மொழி என்பதால், ஜாவாஸ்கிரிப்ட் மொழிபெயர்ப்பாளரால் அதைக் கண்டுபிடித்து ' செயல்பாடு வரையறுக்கப்படவில்லை 'பிழை.





உதாரணமாக

முதலில், ஒரு செயல்பாட்டை வரையறுப்போம் ' கூட்டு 'இது இரண்டு எண்களின் கூட்டுத்தொகையை வழங்குகிறது' 'மற்றும்' பி ”:

செயல் தொகை ( a, b ) {

திரும்ப + பி ;

}

செயல்பாட்டை அழைக்கவும் ' கூட்டு 'என' தொகை 'எண்களைக் கடந்து செல்வதன் மூலம்' 4 'மற்றும்' 7 ”:



பணியகம். பதிவு ( தொகை ( 4 , 7 ) )

இது ஒரு பிழையை ஏற்படுத்தும்' தொகை வரையறுக்கப்படவில்லை ”:

அதை எப்படி சரி செய்வது?

இந்த பிழையை சரிசெய்ய, செயல்பாட்டின் பெயர் சரியாக உச்சரிக்கப்பட்டுள்ளதா மற்றும் சரியான பெரிய எழுத்தாக்கம் உள்ளதா என்பதை உறுதிப்படுத்தவும்:

பணியகம். பதிவு ( கூட்டு ( 4 , 7 ) ) ;

இப்போது, ​​செயல்பாடு ' கூட்டு ' வெற்றிகரமாக அழைக்கப்பட்டு இரண்டு எண்களின் கூட்டுத்தொகை அச்சிடப்பட்டது ' 4 'மற்றும்' 7 ”:

காரணம் 2: செயல்பாடு வெவ்வேறு நோக்கத்தில் வரையறுக்கப்படுகிறது

ஜாவாஸ்கிரிப்டில், ஒவ்வொரு செயல்பாட்டிற்கும் அதன் நோக்கம் உள்ளது, மேலும் ஒரு செயல்பாடு அதன் சொந்த நோக்கத்தில் வரையறுக்கப்பட்ட மாறிகள் மற்றும் செயல்பாடுகளை மட்டுமே அணுக முடியும். ஒரு செயல்பாடு வேறு நோக்கத்தில் வரையறுக்கப்பட்டால், அது தற்போதைய நோக்கத்திற்கு அணுகப்படாமல் போகலாம், இதன் விளைவாக ' செயல்பாடு வரையறுக்கப்படவில்லை 'பிழை.

உதாரணமாக

ஒரு செயல்பாட்டை வரையறுக்கவும் ' தொகை () 'இரண்டு அளவுருக்கள் கொண்ட' 'மற்றும்' பி 'செயல்பாட்டின் உள்ளே' அச்சு () ”:

செயல்பாடு அச்சு ( ) {

செயல் தொகை ( a, b ) {

பணியகம். பதிவு ( + பி ) ;

}

}

செயல்பாட்டை அழைக்கவும் ' தொகை () ”:

தொகை ( 5 , 10 ) ;

அச்சு() செயல்பாட்டிற்குள் தொகை() வரையறுக்கப்பட்டிருப்பதால் இது ஒரு பிழையை அளிக்கிறது ஆனால் நோக்கத்திலிருந்து வெளியே அணுகப்படுகிறது:

அதை எப்படி சரி செய்வது?

செயல்பாடு பொருத்தமான நோக்கத்தில் வரையறுக்கப்பட்டுள்ளதை உறுதிசெய்து, அது அழைக்கப்படும் இடத்திலிருந்து அணுகலாம். எடுத்துக்காட்டாக, செயல்பாடு மற்றொரு செயல்பாட்டிற்குள் வரையறுக்கப்பட்டால், அதை வெளியில் இருந்து அணுக முடியாது.

அச்சு() செயல்பாட்டிற்குள் உள்ள தொகையை () வரையறுத்த பிறகு அழைக்கவும்:

செயல்பாடு அச்சு ( ) {

செயல் தொகை ( a, b ) {

பணியகம். பதிவு ( + பி ) ;

}

தொகை ( 1 , 4 ) ;

}

அச்சு () முறையை அழைக்கவும்:

அச்சு ( ) ;

வெளியீடு

அல்லது நீங்கள் செயல்பாட்டை தனித்தனியாக வரையறுத்து, மற்றொரு செயல்பாட்டின் நோக்கத்தில் பின்வருமாறு அழைக்கலாம்:

செயல் தொகை ( a, b ) {

பணியகம். பதிவு ( + பி ) ;

}

இங்கே, அச்சு() செயல்பாட்டிற்குள் உள்ள தொகை() ஐ அழைப்போம்:

செயல்பாடு அச்சு ( ) {

தொகை ( 5 , 10 ) ;

}

செயல்பாட்டை செயல்படுத்த அச்சு () முறையை அழைக்கவும் ' தொகை () ”:

அச்சு ( ) ;

இரண்டு எண்களின் கூட்டுத்தொகை' 5 'மற்றும்' 10 ” காட்டப்பட்டுள்ளது:

ஜாவாஸ்கிரிப்டுக்கான காரணங்கள் மற்றும் தீர்வுகளை நாங்கள் விவாதித்தோம். செயல்பாடு வரையறுக்கப்படவில்லை பிழை ” (ஆனால் அது வரையறுக்கப்பட்டுள்ளது).

முடிவுரை

அதற்கு இரண்டு முக்கிய காரணங்கள் உள்ளன ' செயல்பாடு வரையறுக்கப்படவில்லை 'செயல்பாட்டை வரையறுத்த பிறகு பிழை ஏற்படுகிறது, எடுத்துக்காட்டாக' செயல்பாடு தவறாக எழுதப்பட்டுள்ளது அல்லது தவறான மூலதனம் உள்ளது 'அல்லது' செயல்பாடு வேறு நோக்கத்தில் வரையறுக்கப்படுகிறது ”. இந்தக் கட்டுரை JavaScript 'செயல்பாடு வரையறுக்கப்படாத பிழை'க்கான காரணங்கள் மற்றும் தீர்வுகளை வரையறுத்துள்ளது (ஆனால் அது வரையறுக்கப்பட்டுள்ளது).