let এবং const হলো ES6 (ECMAScript 6) এর দুটি নতুন কীওয়ার্ড যা var কিওয়ার্ডের বিকল্প হিসেবে ব্যবহৃত হয়। এগুলি ব্লক-স্কোপড (block-scoped), অর্থাৎ এই ভ্যারিয়েবলগুলি শুধুমাত্র তাদের ব্লক বা কোড স্কোপের মধ্যে প্রযোজ্য থাকে। let এবং const এর মধ্যে প্রধান পার্থক্য হল, যেখানে let এর মাধ্যমে ডিক্লেয়ার করা ভ্যারিয়েবলটি পরিবর্তনযোগ্য (mutable), সেখানে const এর মাধ্যমে ডিক্লেয়ার করা ভ্যারিয়েবলটি অপরিবর্তনীয় (immutable)।
এগুলোর ব্যবহার বুঝে কোড লেখা, বিশেষ করে বড় প্রোজেক্টে, সহজ এবং সুরক্ষিত কোডিং প্রাকটিসের জন্য খুবই গুরুত্বপূর্ণ।
let (let keyword)
let কিওয়ার্ড দিয়ে ব্লক স্কোপড ভ্যারিয়েবল ডিক্লেয়ার করা হয়। এর মান পরিবর্তনযোগ্য (mutable), অর্থাৎ একবার একটি মান নির্ধারণ করার পর আপনি এটি পরিবর্তন করতে পারেন।
বৈশিষ্ট্য:
- Block-scoped: এটি ব্লক স্তরে স্কোপ (scope) করে থাকে, অর্থাৎ যেখানে এটি ডিক্লেয়ার করা হয়েছে, শুধুমাত্র সেখানে এটি প্রযোজ্য।
- পরিবর্তনযোগ্য (mutable): মান পরিবর্তন করা সম্ভব।
- Hoisting: let ভ্যারিয়েবল হোইস্টিং প্রক্রিয়ায় চলে, তবে এটি "Temporal Dead Zone" (TDZ) এর মধ্যে থাকে, যার মানে হল যে ভ্যারিয়েবলটি ডিক্লেয়ার হওয়ার আগে এটি ব্যবহৃত হলে ত্রুটি (error) হবে।
উদাহরণ:
let name = "John"; // ভ্যারিয়েবল ঘোষণা
name = "Doe"; // পরিবর্তন করা সম্ভব
console.log(name); // আউটপুট হবে "Doe"
const (const keyword)
const কিওয়ার্ড দিয়ে এমন একটি ভ্যারিয়েবল ডিক্লেয়ার করা হয়, যার মান একবার নির্ধারণ করার পর তা আর পরিবর্তন করা যায় না। এটি immutable (অপরিবর্তনীয়) ভ্যারিয়েবল ডিফাইন করার জন্য ব্যবহৃত হয়।
বৈশিষ্ট্য:
- Block-scoped:
constকেবলমাত্র ব্লক স্তরের স্কোপে প্রযোজ্য। - অপরিবর্তনীয় (immutable): একবার মান নির্ধারণ করার পর, ভ্যারিয়েবলটির মান পরিবর্তন করা সম্ভব নয়।
- Hoisting: const ভ্যারিয়েবলও হোইস্টিং প্রক্রিয়ায় চলে, তবে এটি Temporal Dead Zone এর মধ্যে থাকে, যার মানে ভ্যারিয়েবলটি ডিক্লেয়ার হওয়ার আগেই ব্যবহৃত হলে ত্রুটি ঘটবে।
উদাহরণ:
const age = 30; // কনস্ট্যান্ট ভ্যারিয়েবল ঘোষণা
// age = 35; // এটি ত্রুটি দিবে, কারণ কনস্ট ভ্যারিয়েবল পরিবর্তনযোগ্য নয়
console.log(age); // আউটপুট হবে "30"
let vs const: তুলনা
| বৈশিষ্ট্য | let | const |
|---|---|---|
| স্কোপ | ব্লক স্কোপড (block-scoped) | ব্লক স্কোপড (block-scoped) |
| মান পরিবর্তন | মান পরিবর্তন করা যায় | একবার নির্ধারণের পর পরিবর্তন করা যায় না |
| হোইস্টিং | হোইস্ট করা হয়, তবে Temporal Dead Zone থাকে। | হোইস্ট করা হয়, তবে Temporal Dead Zone থাকে। |
| ব্যবহার | যখন ভ্যারিয়েবলটির মান পরিবর্তন করা প্রয়োজন | যখন ভ্যারিয়েবলটির মান অপরিবর্তনীয় থাকতে হবে |
et এবং const এর ব্যবহারের উপযুক্ততা
- let ব্যবহার করুন:
- যখন আপনি ব্লক স্তরে একটি ভ্যারিয়েবল ডিক্লেয়ার করতে চান যা পরবর্তীতে পরিবর্তনযোগ্য।
- যখন লুপ বা শর্তাধীন অবস্থায় ভ্যারিয়েবল ব্যবহার করা হবে।
- const ব্যবহার করুন:
- যখন আপনি এমন ভ্যারিয়েবল ডিক্লেয়ার করতে চান যার মান একবার সেট করার পর পরিবর্তন করা যাবে না, যেমন কনস্ট্যান্ট সংখ্যা বা স্ট্রিং।
- যখন আপনি অবজেক্ট বা অ্যারে ডিক্লেয়ার করতে চান, তবে তাদের কন্টেন্ট পরিবর্তন করতে পারবেন কিন্তু রেফারেন্স পরিবর্তন করা যাবে না।
সারাংশ: let এবং const জাভাস্ক্রিপ্টে ব্লক স্কোপড ভ্যারিয়েবল ডিক্লেয়ারের জন্য শক্তিশালী টুল। let ব্যবহৃত হয় যখন ভ্যারিয়েবলটির মান পরিবর্তনযোগ্য হওয়া প্রয়োজন, এবং const ব্যবহৃত হয় যখন আপনি এমন একটি ভ্যারিয়েবল চান যার মান কখনো পরিবর্তন হবে না।
Read more