রান্নাঘরে দেখবেন আম্মুরা ছোট ছোট বক্সে বিভিন্ন মশলা-পাতি রাখেন (যেমনঃ লবণ, মরিচ, হলুদ), রাইট? এগুলো এক একটা রান্নার উপাদান আর বক্সগুলো তাদের কন্টেইনার । তো এইরকমই কোনো প্রোগ্রাম লিখার সময় অনেক data বা তথ্য প্রয়োজন হয় এবং অবশ্যই সেগুলো মেমরিতে রাখতে হয়। রান্নাঘরে যেমন সবকিছু খোলামেলা না রেখে বয়মে রাখা হয়, তেমনই মেমরিতে স্টোর করার জন্যও কিছু একটার প্রয়োজন হয়। আর সেটাই হচ্ছে ভ্যারিয়েবল।
তার নামের দিকেই লক্ষ্য করুন না, variable — পরিবর্তনশীল । তার মান নির্দিষ্ট না। যেকোনো কিছু হতে পারে। অর্থাৎ ইউজার যেটা রাখবেন সেটাই তার মান। যেমন যে বয়মে আপনি লবণ রাখবেন সেটা লবনের বয়ম, যেটায় মরিচ রাখবেন সেটা মরিচের।
একটু গুছিয়ে বললে,
আমি মজা করে বলি — ডাটা রাখার ডিব্বা 😁
ভ্যারিয়েবল লিখা
তো চলুন একটা ভ্যারিয়েবল লিখি -
var name;
— একি? ডাটা কই?
— Relax! শুধু ভ্যারিয়েবলের নাম লিখাকে declare করা বলে। পরে value assign ( অ্যাসাইন ) করা যায়। এভাবে একবার না, যতবার প্রয়োজন একটি ভ্যারিয়েবলে value assign , re-assign করা যায় -
name = "Mahfuz Swaron";
— একটা ভ্যারিয়েবল লিখতে এত প্যারা?
— না, প্যারা না। প্রয়োজন হলে এভাবে ভেঙ্গে লিখা হয়। তাছাড়া সবসময় একবারেই লিখা যায়। এক সাথে লিখাকে বলা হয় initialize (ইনিশিয়ালাইজ) করা।
var hobby = "article pora";
const language = "javascript";
let year = 2023;
তার মানে বোঝা গেলো, ভ্যারিয়েবল একবারেও ( ইনিশিয়ালাইজ করে ) লিখা যায়, আবার দুই ধাপেও ( ডিক্লেয়ার -> ভ্যালু এসাইন ) লিখা যায়।
ভ্যারিয়েবলের বিভিন্ন অংশ
একটা বক্সের যেমন বিভিন্ন অংশ রয়েছে, তেমনই একটি ভ্যারিয়েবলেরও রয়েছে।
Keyword: জাভাস্ক্রিপ্টে ভ্যারিয়েবল ডিক্লেয়ার করার জন্য ৩টি keyword রয়েছে। var, let এবং const। এগুলোর মধ্যে কিছু পার্থক্য রয়েছে যার জন্য আমি একটি বিস্তারিত আর্টিকেল লিখেছি। নিচে সেটার লিংক দেয়া থাকবে।
Identifier: ভ্যারিয়েবলের নামকেই আইডেন্টিফায়ার বলে। এটি আপনি আপনার মন মতোই দিতে পারবেন তবে কিছু নিয়ম আছে যা একটু পরেই বলছি।
Assignment Operator: ভ্যারিয়েবলের ভ্যালু এসাইন করার জন্য তার আগে "=" চিহ্নটি দিতে হয়।
Value: ভ্যারিয়েবলের value বা মানই হচ্ছে তার প্রাণ। ভ্যারিয়েবলে যদি কোনো value assign না করা হয়, তাহলে তার মান
undefined
হয়ে থাকে।
IDENTIFIER লিখার নিয়ম
ভ্যারিয়েবলের নাম আপনি ইচ্ছামতো দিতে পারবেন। তবে কিছু নিয়ম মানতে হবে।
letter, underscore ( _ ) অথবা dollar ( $ ) এগুলোর যেকোনো একটি দিয়ে শুরু করতে হবে। কোনো number দিয়ে শুরু করা যাবে না। তবে বাকি অংশে ব্যবহার করা যাবে। যেমনঃ
article1
identifier এ কোনো space থাকা যাবে না। যেমনঃ
my name
এভাবে লিখা যাবে না।জাভাস্ক্রিপ্টের কোনো কীওয়ার্ড identifier হিসেবে লিখা যাবে না। যেমনঃ
if, else, function, var, let
, ইত্যাদি।
কি কি করা যাবে না জানা গেল। এবার আসুন দেখি কি কি করা যাবে বা উচিৎ।
ভ্যারিয়েবলের নাম মিনিংফুল হওয়া উচিৎ। ধরুন ভ্যারিয়েবলে কারো জন্মতারিখ রাখতে হবে, তো identifier টি হতে পারে
birthday
,dateOfBirth
,birth-date
।একাধিক শব্দের নাম লিখতে হলে শব্দগুলোর মাঝে হাইফেন ( - ) অথবা আন্ডারস্কোর ( _ ) লিখা যেতে পারে। যেমনঃ
phone-number, phone_number
।আরও একটি সুন্দর উপায়ে লিখা যায়, তা হচ্ছে camelCase। প্রথম শব্দ ছাড়া বাকি শব্দগুলোর প্রথম অক্ষর বড় হাতে লিখা। যেমনঃ
camelCaseIdentifier
।
ভ্যারিয়েবলের কাজ কি?
প্রোগ্রামের অনেক কাজ ভ্যারিয়েবল ব্যবহার করেই করা হয়। চলুন কাজগুলোর কিছু ধারণা নেয়া যাক।
- data স্টোর করা।
const result = "A";
const point = 4.00;
const kothaSotti = true;
const capaMaro = false;
- কোনো অপারেশন করা ।
const a = 2000;
const b = 23;
const sum = a + b; // sum = 2023;
const x = sum + 10 - 20 * 15 / 100; // x = 2030
- ভ্যারিয়েবলের সাথে ভ্যারিয়েবলের অপারেশন ।
let myAge = 20;
let herAge = 19;
let difference = myAge - herAge;
console.log(difference); // output: 1
তাছাড়াও প্রোগ্রামের ফ্লো নির্ধারনসহ আরো বেশ কিছু কাজের জন্য ভ্যারিয়েবল ব্যবহার করা হয়।
আচ্ছা, চলেন এবার ছোট্ট একটা মজার কাজ করা যাক! আমরা ২ টা ভ্যারিয়েবলের মান swap (বদলা-বদলি) করব।
let amarMon = "amar";
let tarMon = "tar";
let ourFirstSight = amarMon;
amarMon = tarMon;
tarMon = ourFirstSight;
console.log(amarMon,", ",tarMon); // output: tar, amar
কেমনে কী? 🙄
ourFirstSight
এ amarMon
এর ভ্যালু রাখলাম।tarMon
এর ভ্যালু amarMon
এ রাখলাম।amarMon
এর ভ্যালু আগে যে ourFirstSight
এ রাখছিলাম সেটা tarMon
এ সেট করে দিলাম।amarMon
আর tarMon
এর ভ্যালু অদল-বদল হয়ে গেছে। বিশ্বাস না হলে console.log()
করে দেখেন 😏।ট্রাই করে দেখবেন নাকি ? 😏 তো যান 👉 online_js_compiler
পরিশেষে
আপনার জন্য ১ টা ভ্যারিয়েবল declare করে দিলাম। Value Assign করে যাবেন কিন্তু 🙃
let comment;
আচ্ছা আরেকটা ভ্যারিয়েবলও লিখে যাই…
let nextArticle = “var vs let vs const”;
আর হ্যাঁ, ভালো লাগলে লাইক-কমেন্ট করে উৎসাহিত করবেন 😊