বিদায় Var
পুরাতন ফোন আমরা ফেলে দেই বা ছোট ভাই-বোনকে দিয়ে দেই। পুরান স্কুলের বই আমরা ফেলে দেই বা ছোট ভাই-বোন থাকলে তাদের জন্য রেখে দেই।
জাভাস্ক্রিপ্টের সাথেও এই জিনিস ঘটেছে বেশ কয়েকবার। তার মধ্যে একটা বিশাল ঘটনা ঘটে 2015-তে। তখন জাভাস্ক্রিপ্টের হর্তাকর্তারা সিদ্ধান্ত নিল যে, জাভাস্ক্রিপ্টে নতুন কিছু আনার দরকার আছে। তুই জানিস, জাভাস্ক্রিপ্টের অফিসিয়াল নাম ECMAScript। এই ECMA থেকে E এবং Script থেকে S নিয়ে সংক্ষেপে ES বলে। তাই ES6 বলতে বুঝায় ECMAScript বা জাভাস্ক্রিপ্টের 6 নম্বর ভার্সন।
জাভাস্ক্রিপ্টের যখন 6 নম্বর ভার্সন রিলিজ হয়, তখন অনেকগুলা জিনিসের মধ্যে গুরুত্বপূর্ণ ছিল const, let আর এই দুইটা তুই অলরেডি ভেরিয়েবল ডিক্লেয়ার করার জন্য ইউজ করতেছিস। যদিও একটা সময় জাভাস্ক্রিপ্টে এই দুইটার কোনোটাই ছিল না। তখন ভেরিয়েবল লেখার জন্য var ইউজ করা হতো। আর এই var-এর কারণে অনেক সমস্যাও হতো।
এখনকার দিনে প্রায় সব ক্ষেত্রেই var ব্যবহার করার বিশেষ কোনো কারণ নাই। আমরা let এবং const ব্যবহার করব। let মানে তুই ভেরিয়েবলের মান পরিবর্তন করতে পারবি, কিন্তু const মানে সেটিকে পরিবর্তন করতে পারবি না। এইটুক তুই আগে থেকেই জানিস।
const money = 25;
money = 50;এভাবে করলে জাভাস্ক্রিপ্ট মাইন্ড করবে। তখন তুই TypeError: Assignment to constant variable দেখতে পাবি। অর্থাৎ তুই যদি const দিয়ে কোনো ভ্যারিয়েবল ডিক্লেয়ার করিস, তাহলে সেটি আর পরিবর্তন করা যাবে না। তবে সেই মান দিয়ে অন্য কাজ করতে পারবি, কিন্তু মূল ভ্যারিয়েবলের মান চেইঞ্জ করতে পারবি না। যেমন:
const money = 25;
const rich = money + 25;
console.log(rich);আর যদি কোনো মান পরিবর্তন করার দরকার হয়, তখন let দিয়ে ডিক্লেয়ার করবি। যেমন:
let count = 0;
count = count + 10;
console.log(count);এভাবে করলে জাভাস্ক্রিপ্ট কোনো error দিবে না, ঠিকঠাক কাজ করবে।
যদিও const দিয়ে ভেরিয়েবল ডিক্লেয়ার করলে সেটার পুরা মান চেইঞ্জ করা যায় না। তবে ভেরিয়েবলের মান যদি array বা অবজেক্ট হয়, তাহলে তার ভিতরের উপাদান বা প্রোপার্টি চেইঞ্জ করতে পারবি। যেমন, তুই অ্যারের ভিতরের উপাদান চেঞ্জ করতে পারবি।
const numbers = [23, 4, 23, 12, 56];
numbers[1] = 55;
console.log(numbers);এতে জাভাস্ক্রিপ্ট কোনো সমস্যা করবে না। আবার তুই উপাদান push বা popও করতে পারবি।
const numbers = [23, 4, 23, 12, 56];
numbers[1] = 55;
numbers.push(8, 9, 65);
console.log(numbers);
Output: [ 23, 55, 23, 12, 56, 8, 9, 65 ]অবজেক্টের ক্ষেত্রেও একই নিয়ম প্রযোজ্য। পুরা ভেরিয়েবলের মান রি-অ্যাসাইন করার চেষ্টা করলে error দিবে।
const student = {
name: 'moyna pakhi',
class: 12,
}
student = {
name: 'kokil konthi'
}
console.log(student);
Output:
TypeError: Assignment to constant variable.কিন্তু ভেতরের প্রোপার্টি আপডেট করতে পারবি বা নতুন প্রোপার্টি যোগ করতে পারবি।
const student = {
name: 'moyna pakhi',
class: 12,
}
student.name = 'moyur konthi';
console.log(student);
Output:
{ name: 'moyur konthi', class: 12 }ফাইনাল কথা হচ্ছে, বেশির ভাগ সময় const ইউজ করবি, আর মাঝেমধ্যে দরকার হলে let ইউজ করবি। তবে var কখনোই ইউজ করবি না।
Modern JavaScript Practice:
- var, let, এবং const-এর মধ্যে ডিফারেন্স কি?
- var কে কেন বিদায় দেওয়া হলো? var দিয়ে ভেরিয়েব্ল ডিক্লেয়ার করলে কি কি সমস্যা তৈরি হয়?