const দিয়ে Immutable ভ্যারিয়েবল তৈরি করা

লেট (let) এবং কনস্ট (const) কীওয়ার্ড - জাভাস্ক্রিপ্ট ইএস৬ (ES6) - Web Development

228

const কিওয়ার্ড দিয়ে ডিক্লেয়ার করা ভ্যারিয়েবলগুলি immutable (অপরিবর্তনীয়) হয়, অর্থাৎ একবার ভ্যালু সেট করার পর, তা পরিবর্তন করা যায় না। কিন্তু এখানে একটি গুরুত্বপূর্ণ বিষয় হলো যে, const কেবলমাত্র ভ্যারিয়েবলের রেফারেন্সকে অপরিবর্তনীয় করে, কিন্তু যদি সেই ভ্যারিয়েবলটি কোনো অবজেক্ট বা অ্যারে হয়, তবে তার ভ্যালু (অথবা অবজেক্ট বা অ্যারের কন্টেন্ট) পরিবর্তন করা সম্ভব।

অর্থাৎ, const এর মাধ্যমে আপনি যেকোনো ভ্যারিয়েবল বা অবজেক্টের রেফারেন্স পরিবর্তন করতে পারবেন না, তবে যদি তা একটি অবজেক্ট বা অ্যারে হয়, তাহলে সেই অবজেক্ট বা অ্যারের ভ্যালু বা কন্টেন্ট আপডেট করা সম্ভব।


1. const দিয়ে Immutable Primitive ভ্যারিয়েবল

যখন আপনি const দিয়ে একটি primitive data type (যেমন string, number, boolean) ডিক্লেয়ার করেন, তখন সেই ভ্যারিয়েবলটির মান অপরিবর্তনীয় হয়ে যায়। একবার একটি মান নির্ধারণ করার পর, পরবর্তীতে আপনি সেটিকে পরিবর্তন করতে পারবেন না।

উদাহরণ:

const name = "John";  // String - Primitive type

name = "Doe";  // Error: Assignment to constant variable.
console.log(name);  // এটি রান হবে না কারণ 'name' পরিবর্তনযোগ্য নয়।

এখানে, name একটি string যেহেতু primitive data type, তাই একবার সেট করা হলে এটি পরিবর্তন করা যাবে না। যদি আপনি পরিবর্তন করার চেষ্টা করেন, তাহলে error হবে।


2. const দিয়ে Immutable Object বা Array

যখন আপনি const দিয়ে একটি অবজেক্ট (Object) বা অ্যারে (Array) ডিক্লেয়ার করেন, তখন তার রেফারেন্স অপরিবর্তনীয় হয়ে যায়। অর্থাৎ আপনি ওই অবজেক্ট বা অ্যারের রেফারেন্সটি আর পরিবর্তন করতে পারবেন না, কিন্তু তার ভিতরের কন্টেন্ট পরিবর্তন করা সম্ভব।

অবজেক্ট (Object) উদাহরণ:

const person = {
  name: "John",
  age: 30
};

person.name = "Doe";  // এখানে কন্টেন্ট পরিবর্তন করা সম্ভব
console.log(person.name);  // "Doe"

এখানে, person একটি অবজেক্ট, যার ভিতরের কন্টেন্ট পরিবর্তন করা যেতে পারে। তবে আপনি person এর রেফারেন্স (যেমন, person = {}) পরিবর্তন করতে পারবেন না।

অ্যারে (Array) উদাহরণ:

const numbers = [1, 2, 3];
numbers.push(4);  // অ্যারের মধ্যে নতুন মান যোগ করা সম্ভব
console.log(numbers);  // [1, 2, 3, 4]

এখানে, numbers একটি অ্যারে, যার ভিতরের ডেটা (যেমন push()) পরিবর্তন করা সম্ভব। তবে, আপনি numbers এর রেফারেন্সকে নতুন অ্যারে দিয়ে পরিবর্তন করতে পারবেন না, যেমন:

numbers = [5, 6, 7];  // Error: Assignment to constant variable.

const এর সাথে Immutable ডাটা: গুরুত্বপূর্ণ বিষয়গুলো

  1. Primitive Data Types: const দিয়ে ডিক্লেয়ার করা primitive data types (যেমন string, number, boolean) কখনোই পরিবর্তন করা যাবে না। একবার মান সেট হলে, পরবর্তীতে সেটা পরিবর্তন করা সম্ভব নয়।
  2. Object এবং Array: const দিয়ে ডিক্লেয়ার করা objects বা arrays এর ভিতরের কন্টেন্ট পরিবর্তন করা সম্ভব। তবে, তাদের রেফারেন্স পরিবর্তন করা যাবে না। অর্থাৎ, আপনি ঐ অবজেক্ট বা অ্যারের মান পরিবর্তন করতে পারেন, কিন্তু ঐ অবজেক্ট বা অ্যারে অন্য কোনো অবজেক্ট বা অ্যারে দ্বারা প্রতিস্থাপন করতে পারবেন না।
  3. Immutable Objects: যদি আপনি একটি সম্পূর্ণ অপরিবর্তনীয় (immutable) অবজেক্ট বা অ্যারে চান, তাহলে আপনাকে Object.freeze() বা Array.freeze() এর মতো পদ্ধতি ব্যবহার করতে হবে। এর মাধ্যমে আপনি অবজেক্টের বা অ্যারের সকল কন্টেন্টকে অপরিবর্তনীয় করতে পারবেন।

Immutable Object উদাহরণ:

const person = Object.freeze({
  name: "John",
  age: 30
});

person.name = "Doe";  // Error: Cannot assign to read only property 'name'
console.log(person.name);  // "John"

সারাংশ

const দিয়ে ডিক্লেয়ার করা ভ্যারিয়েবলগুলি একবার মান নির্ধারণ করার পর পরিবর্তনযোগ্য নয়। তবে যদি তা কোনো অবজেক্ট বা অ্যারে হয়, তার কন্টেন্ট পরিবর্তন করা সম্ভব। const মূলত immutable references তৈরি করতে ব্যবহৃত হয়, কিন্তু অবজেক্ট বা অ্যারের ভিতরের ডেটা পরিবর্তন করা যেতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...