ES6 இல் let மற்றும் const
letஅறிவிப்பு (Declaration):ES6 இல், block-scoped மாறிகளை (variables) உருவாக்க
letஅறிவிப்பு அறிமுகப்படுத்தப்பட்டது. இதன் பொருள்,letஉடன் அறிவிக்கப்பட்ட மாறியானது அது வரையறுக்கப்பட்டுள்ள தொகுதிக்குள் (block) (எ.கா., ஒரு செயல்பாட்டிற்குள் அல்லது ஒரு ஜோடி சுருள் அடைப்புக்குறிக்குள்) மட்டுமே அணுகக்கூடியது.letமாறிகள் அவற்றைக் கொண்டிருக்கும் செயல்பாடு (function) அல்லது தொகுதியின் (block) உச்சிக்கு உயர்த்தப்படுவதில்லை (not hoisted). இது மாறிகள் அறிவிக்கப்படுவதற்கு முன்பு அணுகப்படும் சிக்கல்களைத் தடுக்கிறது.letஆரம்ப அறிவிப்புக்குப் பிறகு மாறிக்கு ஒரு மதிப்பை மீண்டும் ஒதுக்க (reassign) உங்களை அனுமதிக்கிறது, இது ஒரு மாற்றக்கூடிய (mutable) மாறியாக அமைகிறது.எடுத்துக்காட்டு:
function exampleFunction() { if (true) { let x = 10; console.log(x); // 10 } console.log(x); // பிழை (Error): x வரையறுக்கப்படவில்லை (not defined) }
constஅறிவிப்பு (Declaration):constஅறிவிப்பும் block-scoped மாறிகளை அறிமுகப்படுத்துகிறது, ஆனால் இது ஒரு கூடுதல் கட்டுப்பாட்டுடன் வருகிறது:constஉடன் அறிவிக்கப்பட்ட மாறிகளை அவற்றின் ஆரம்ப ஒதுக்கீட்டிற்குப் (initial assignment) பிறகு மீண்டும் ஒதுக்க முடியாது. அவை மாறிலிகள் (constants).மாறிலிகள் (constants) அல்லது மாற்ற முடியாத பொருள்களுக்கான (immutable objects) குறிப்புகள் போன்ற மாறக் கூடாத மதிப்புகளுக்கு
constஅடிக்கடி பயன்படுத்தப்படுகிறது.எடுத்துக்காட்டு:
const pi = 3.14159; pi = 3.14; // பிழை (Error): மாறிலி மாறிக்கு (constant variable) ஒதுக்கீடு (Assignment).
ES5 உடனான ஒப்பீடு:
ES5 இல், ஜாவாஸ்கிரிப்ட் மாறி அறிவிப்புக்கு (variable declaration) முதன்மையாக var முக்கிய சொல்லைப் பயன்படுத்தியது. ES6 இல் உள்ள let மற்றும் const ஐ ES5 இல் உள்ள var உடன் ஒப்பிடும்போது முக்கிய வேறுபாடுகள் இங்கே:
Block Scope (vs) Function Scope:
ES6 (
letமற்றும்const):letமற்றும்constஉடன் அறிவிக்கப்பட்ட மாறிகள் block-scoped ஆகும், அதாவது அவை ஒரு செயல்பாட்டிற்குள் உள்ள தொகுதியாக (block) இருந்தாலும் அல்லது ஒரு தனித்த தொகுதியாக இருந்தாலும், அவை வரையறுக்கப்பட்டுள்ள தொகுதிக்கு மட்டுமே வரையறுக்கப்பட்டுள்ளன.ES5 (
var):varஉடன் அறிவிக்கப்பட்ட மாறிகள் function-scoped ஆகும், அதாவதுvarஅறிவிப்பைக் கொண்டிருக்கும் முழு செயல்பாட்டிலும் (function) அவற்றை அணுகலாம்.
Hoisting:
ES6 (
letமற்றும்const):letமற்றும்constஉடன் அறிவிக்கப்பட்ட மாறிகள் அவற்றைக் கொண்டிருக்கும் தொகுதியின் உச்சிக்கு உயர்த்தப்படுவதில்லை, இது மாறிகளை அறிவிப்பதற்கு முன்பு அவற்றைப் பயன்படுத்துவதைத் தடுக்கிறது.ES5 (
var):varஉடன் அறிவிக்கப்பட்ட மாறிகள் அவற்றைக் கொண்டிருக்கும் செயல்பாட்டின் உச்சிக்கு உயர்த்தப்படுகின்றன, இது கவனமாக நிர்வகிக்கப்படாவிட்டால் எதிர்பாராத நடத்தைக்கு வழிவகுக்கும்.
மறுஒதுக்கீடு (Reassignment):
ES6 (
letமற்றும்const):letஉடன் அறிவிக்கப்பட்ட மாறிகளை அவற்றின் ஆரம்ப அறிவிப்புக்குப் பிறகு மீண்டும் ஒதுக்கலாம்.constஉடன் அறிவிக்கப்பட்ட மாறிகளை மீண்டும் ஒதுக்க முடியாது, அவை மாறிலிகள் (constants).ES5 (
var):varஉடன் அறிவிக்கப்பட்ட மாறிகளை அவை அறிவிக்கப்பட்ட செயல்பாட்டில் எந்த இடத்திலும் மீண்டும் ஒதுக்கலாம்.
மாறிலிகள் (Constants):
- ES6 (
const): ES6constமுக்கிய சொல்லை அறிமுகப்படுத்துகிறது, இது மாறிலிகளை உருவாக்க அனுமதிக்கிறது, அவை அவற்றின் ஆரம்ப ஒதுக்கீட்டிற்குப் பிறகு மாற்ற முடியாது.
- ES6 (
ES6 இல் உள்ள let மற்றும் const ஆகியவை ES5 இல் உள்ள var ஐ விட கணிக்கக்கூடிய (predictable) மற்றும் கட்டுப்படுத்தப்பட்ட மாறி ஸ்கோப்பிங்கை (controlled variable scoping) வழங்குகின்றன. அவை variable hoisting உடன் தொடர்புடைய பொதுவான சிக்கல்களைத் தவிர்க்க உதவுகின்றன மற்றும் உங்கள் தேவைகளின் அடிப்படையில் மாற்றக்கூடிய (mutable) மற்றும் மாற்ற முடியாத (immutable) மாறிகளுக்கு இடையே தேர்வு செய்வதற்கான நெகிழ்வுத்தன்மையை வழங்குகின்றன.