JavaScript Const

நிலையான மாறிகளைக் கையாள ES6 const ஐக் கற்றுக்கொள்ளுங்கள்

JavaScript Const

const கீவேர்டு ES6 (2015) இல் அறிமுகப்படுத்தப்பட்டது

Cannot be Redeclared: const உடன் வரையறுக்கப்பட்ட மாறிகள் மீண்டும் அறிவிக்க முடியாது
Cannot be Reassigned: const உடன் வரையறுக்கப்பட்ட மாறிகள் மீண்டும் ஒதுக்க முடியாது
Block Scope: const உடன் வரையறுக்கப்பட்ட மாறிகள் Block Scope கொண்டிருக்கும்

Cannot be Reassigned

const கீவேர்டுடன் வரையறுக்கப்பட்ட மாறி மீண்டும் ஒதுக்க முடியாது:

Example: const cannot be reassigned

const PI = 3.141592653589793;
PI = 3.14;      // ❌ This will give an error
PI = PI + 10;   // ❌ This will also give an error

Must be Assigned

JavaScript const மாறிகள் அறிவிக்கப்படும்போது ஒரு மதிப்பை ஒதுக்க வேண்டும்:

✅ Correct

const PI = 3.14159265359;

மாறி அறிவிப்பில் மதிப்பு ஒதுக்கப்பட்டுள்ளது

❌ Incorrect

const PI;  // ❌ Error
PI = 3.14159265359;

மாறி அறிவிப்பில் மதிப்பு ஒதுக்கப்படவில்லை

When to use JavaScript const?

மதிப்பு மாறக்கூடாது என்று உங்களுக்குத் தெரிந்தால் எப்போதும் ஒரு மாறியை const உடன் அறிவிக்கவும்.

நீங்கள் அறிவிக்கும்போது const பயன்படுத்தவும்:

Array

புதிய வரிசை (Array)

Object

புதிய பொருள் (Object)

Function

புதிய செயல்பாடு (Function)

RegExp

புதிய வழக்கமான வெளிப்பாடு (Regular Expression)

🏆 சிறந்த நடைமுறை:

எப்போதும் முதலில் const பயன்படுத்தவும், பின்னர் மட்டுமே நீங்கள் மறுஒதுக்கம் செய்ய வேண்டியிருந்தால் let க்கு மாறவும். var ஐ ஒருபோதும் பயன்படுத்தாதீர்கள்.

Constant Objects and Arrays

const கீவேர்டு சிறிது தவறாக புரிந்து கொள்ளப்படுகிறது.

இது ஒரு நிலையான மதிப்பை வரையறுக்காது. இது ஒரு மதிப்புக்கான நிலையான குறிப்பை வரையறுக்கிறது.

You can NOT: But you CAN:
நிலையான மதிப்பை மீண்டும் ஒதுக்கவும் நிலையான வரிசையின் உறுப்புகளை மாற்றவும்
நிலையான வரிசையை மீண்டும் ஒதுக்கவும் நிலையான பொருளின் பண்புகளை மாற்றவும்
நிலையான பொருளை மீண்டும் ஒதுக்கவும் வரிசைக்கு உறுப்புகளைச் சேர்க்கவும்

Constant Arrays

நீங்கள் ஒரு நிலையான வரிசையின் உறுப்புகளை மாற்றலாம்:

Example: Modifying constant array

// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];

// You can change an element:
cars[0] = "Toyota";  // ✅ Allowed

// You can add an element:
cars.push("Audi");    // ✅ Allowed

ஆனால் நீங்கள் வரிசையை மீண்டும் ஒதுக்க முடியாது:

Example: Cannot reassign constant array

const cars = ["Saab", "Volvo", "BMW"];

cars = ["Toyota", "Volvo", "Audi"];  // ❌ ERROR

💡 புரிதல்:

const வரிசை மாறி எதைச் சுட்டிக்காட்டுகிறது என்பதை மாற்றாது - இது வரிசையை மாற்றுவதைத் தடுக்காது.

Constant Objects

நீங்கள் ஒரு நிலையான பொருளின் பண்புகளை மாற்றலாம்:

Example: Modifying constant object

// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};

// You can change a property:
car.color = "red";  // ✅ Allowed

// You can add a property:
car.owner = "Johnson";  // ✅ Allowed

ஆனால் நீங்கள் பொருளை மீண்டும் ஒதுக்க முடியாது:

Example: Cannot reassign constant object

const car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"red"};  // ❌ ERROR

Difference Between var, let and const

Feature var let const
Scope No Block Scope Block Scope Block Scope
Redeclare Yes No No
Reassign Yes Yes No
Hoisted Yes No No
Binds this Yes No No

What is Good?

let மற்றும் const Block Scope கொண்டிருக்கின்றன
let மற்றும் const மீண்டும் அறிவிக்க முடியாது
let மற்றும் const பயன்படுத்துவதற்கு முன் அறிவிக்கப்பட வேண்டும்
let மற்றும் const this உடன் bind செய்யாது
let மற்றும் const hoist செய்யப்படுவதில்லை

What is Not Good?

var அறிவிக்கப்பட வேண்டியதில்லை (டிஃபால்ட் global)
var hoist செய்யப்படுகிறது (அறிவிப்புக்கு முன் பயன்படுத்தலாம்)
var this உடன் bind செய்கிறது

Browser Support

let மற்றும் const கீவேர்டுகள் Internet Explorer 11 அல்லது அதற்கு முந்தைய பதிப்புகளில் ஆதரிக்கப்படவில்லை.

Browser Version Release Date
Chrome 49 Mar, 2016
Edge 12 Jul, 2015
Firefox 36 Jan, 2015
Safari 11 Sep, 2017
Opera 36 Mar, 2016

Block Scope

const உடன் ஒரு மாறியை அறிவிப்பது Block Scope பற்றி let போன்றது.

Example: Block Scope with const

const x = 10;
// Here x is 10

{
  const x = 2;
  // Here x is 2
}

// Here x is 10

📚 கற்றல்:

Block Scope பற்றி மேலும் அறிய JavaScript Scope அத்தியாயத்தைப் படியுங்கள்.

Redeclaring Rules

ஒரு JavaScript var மாறியை மீண்டும் அறிவிப்பது ஒரு நிரலில் எங்கும் அனுமதிக்கப்படுகிறது:

Example: Allowed with var

var x = 2;     // Allowed
var x = 3;     // Allowed
x = 4;         // Allowed

அதே scope இல் இருக்கும் ஒரு இருக்கும் var அல்லது let மாறியை const ஆக மீண்டும் அறிவிப்பது அனுமதிக்கப்படவில்லை:

Example: Not allowed to redeclare as const

var x = 2;     // Allowed
const x = 2;   // ❌ Not allowed

{
  let x = 2;   // Allowed
  const x = 2; // ❌ Not allowed
}

{
  const x = 2; // Allowed
  const x = 2; // ❌ Not allowed
}

மற்றொரு scope இல், அல்லது மற்றொரு தொகுதியில், const உடன் ஒரு மாறியை மீண்டும் அறிவிப்பது அனுமதிக்கப்படுகிறது:

Example: Allowed in different scopes

const x = 2;       // Allowed

{
  const x = 3;   // Allowed (different block)
}

{
  const x = 4;   // Allowed (different block)
}

Hoisting

var உடன் வரையறுக்கப்பட்ட மாறிகள் மேலே hoist செய்யப்படுகின்றன மற்றும் எந்த நேரத்திலும் துவக்கப்படலாம்.

Example: var Hoisting

carName = "Volvo";
var carName; // ✅ Allowed (hoisted)

📚 கற்றல்:

Hoisting பற்றி மேலும் அறிய விரும்பினால், JavaScript Hoisting அத்தியாயத்தைப் படியுங்கள்.

const உடன் வரையறுக்கப்பட்ட மாறிகள் மேலே hoist செய்யப்படுகின்றன, ஆனால் துவக்கப்படவில்லை.

Example: const Hoisting (Temporal Dead Zone)

alert(carName);    // ❌ ReferenceError
const carName = "Volvo";

Temporal Dead Zone:

const மாறிகள் hoist செய்யப்படுகின்றன, ஆனால் "temporal dead zone" இல் இருக்கும். அறிவிப்புக்கு முன் அவற்றைப் பயன்படுத்த முயற்சிப்பது ReferenceError ஐ ஏற்படுத்தும்.

Exercise

உண்மை அல்லது பொய்.

String அல்லது Number வகை மாறிகள், const கீவேர்டுடன் உருவாக்கப்பட்டவை, அவற்றின் மதிப்பை ஒருபோதும் மாற்ற முடியாது.

True
✓ சரி! String மற்றும் Number போன்ற பிரிமிடிவ் மதிப்புகளுக்கு, const உண்மையில் நிலையானதாக இருக்கும். அவற்றின் மதிப்பை மாற்ற முடியாது.
False
✗ தவறு! String மற்றும் Number பிரிமிடிவ் மதிப்புகள். const உடன் பிரிமிடிவ் மதிப்புகளை வரையறுக்கும்போது, அந்த மதிப்பு முற்றிலும் மாறாததாக இருக்கும். Objects மற்றும் Arrays க்கு மட்டுமே உள் உள்ளடக்கங்களை மாற்றலாம்.