ও মেয়ে, তোর Name দিব কী

দোস্ত, এইবার তোকে ভেরিয়েবলের নাম নিয়ে কিছু কথা বলে ফেলি।
— নাম নিয়ে এত প্যারা কেন? একটা নাম দিলেই তো হয়।
আরেকটু সামনে এগুলেই বুঝতে পারবি। নামের সাথে মানের একটা মিল রাখতে হয়। তা ছাড়া তুই চাইলে ইচ্ছামতো যেকোনো নাম দিতে পারবি না। কিছু রুলস আছে। সেগুলা আগে থেকে জেনে রাখলে সামনে আরও অনেক কাজে লাগবে।
আমি কয়েকটা রুলস বলে দিচ্ছি। দেখে রাখ। মুখস্ত করার দরকার নাই। ফিউচারে আটকে গেলে বা সমস্যা হলে আবার এসে দেখবি।
ভেরিয়েবলের নামের মধ্যে কোনো জাভাস্ক্রিপ্টের রিজার্ভ করা কি-ওয়ার্ড। যেমন const বা false এমন আরও অনেক শব্দ আছে, সেগুলা ব্যবহার করা যাবে না।
const false = 45; // ভুল
const const = 50; // ভুলভেরিয়েবলের নামের মধ্যে Space বা gap ব্যবহার করা যাবে না। পুরা নাম এক শব্দে লিখতে হবে।
const is happy = false; // ভুল
const isHappy = true; // ঠিকভেরিয়েবলের নামের মধ্যে Quotation ব্যবহার করা যাবে না।
const “address” = xyz; // ভুলভেরিয়েবলের নাম সংখ্যা দিয়ে শুরু করা যাবে না। তবে নামের প্রথম অক্ষর ছাড়া যেকোনো জায়গায় সংখ্যা ব্যবহার করা যাবে।
const 3money = 45; // ভুল
const money3 = 45; // ঠিক
const mon3ey = 45; // ঠিকনাম আলাদা হলে ভেরিয়েবল আলাদা তো হবেই। এমনকি নামের মধ্যে এক বা একাধিক অক্ষর যদি ইংরেজি ছোট হাতের অক্ষর বা বড় হাতের অক্ষর হয়, তাহলেও কিন্তু আলাদা আলাদা ভেরিয়েবল হিসেবে গণ্য হবে। এইটাকে বলে ভেরিয়েবলের নাম Case sensitive।
const address = “xyz”;
const Address= “abc”;
const AddresS= “abc”;ওপরের ভেরিয়েবলের নাম দেখতে বা পড়তে সেইম হলেও ছোট এবং বড় হাতের অক্ষরের পার্থক্য থাকায় তারা আলাদা আলাদা ভেরিয়েবল হিসেবে গণ্য হবে।
বড় নামের ক্ষেত্রে: যখন একাধিক অক্ষর দিয়ে ভেরিয়েবলের নাম লিখতে হয়, তখন কয়েকটা সিস্টেম আছে। একটা হচ্ছে, প্রত্যেকটা শব্দের মধ্যে একটা করে আন্ডারস্কোর দিয়ে দেওয়া। এইটা কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজে করা হয়। চাইলে জাভাস্ক্রিপ্টেও ইউজ করা যায়। তবে এইটা বেশির ভাগ মানুষ করে না। আরেকটা সিস্টেম হচ্ছে, প্রত্যেক শব্দের প্রথম অক্ষর বড় হাতের অক্ষর করে ফেলে। যেন পড়তে সুবিধা হয়। এইটাকে camel case বলে। অর্থাৎ উটের মতো একটু উঁচা একটু নিচা স্টাইলে নাম লেখা আছে।
const mycurrenthomeaddress = “kana goli”; // Not Recommended
const My_current_home_address // (snake case) try to avoid
const myCurrentHomeAddress // (camel case) recommended
ভেরিয়েবলের নামের মধ্যে কোনো স্পেশাল ক্যারেক্টার ব্যবহার করা যাবে না। শুধু মাত্র _(আন্ডারস্কোর) এবং $(ডলার সাইন) ব্যবহার করা যায়। কিন্তু অন্য কোনো স্পেশাল ক্যারেক্টার (যেমন @, #, %, &, *) ব্যবহার করলে এরর দিবে।
const my@name = "Hanks"; // ভুল
const price#tag = 999; // ভুল
const user$name = "Fahim"; // ঠিক
const _secretCode = 12345; // ঠিকJavaScript-এ রিজার্ভড ওয়ার্ড (Keyword):
JavaScript-এ কিছু রিজার্ভড ওয়ার্ড আছে। রিজার্ভ মানে এইগুলা নির্দিষ্ট কাজ করে বা এখনও সেট না করা হলেও ফিউচারে কাজ করতে পারে। এদেরকে রিজার্ভ করা ওয়ার্ড বলে। অনেকটা বুকিং দিয়ে রাখছে টাইপ অবস্থা। আবার এদের মধ্যে যেগুলা যেগুলা নির্দিষ্ট কোনো কাজ করে, সেগুলাকে আমরা keyword বলে চিনি।
এই keyword-গুলোকে ভেরিয়েবল ডিক্লেয়ার করার সময় ভেরিয়েবলের নাম হিসেবে ব্যবহার করা যাবে না। কারণ, এদের স্পেশাল কাজে ইউজ করা হয়। নিচে কয়েকটা রিজার্ভ ওয়ার্ডের (কি-ওয়ার্ড) নাম দিলাম। এইগুলা এখন বুঝার দরকার নাই। মুখস্ত করারও দরকার নাই। জাস্ট দেখে রাখ।

আরেকটা কথা, কোনোভাবেই প্রোগ্রামিং মুখস্ত করতে যাবি না। মুখস্ত করে সুবিধাও করতে পারবি না; বরং পড়তে থাক, দেখতে থাক, আর ধুমাইয়া প্র্যাকটিস করতে থাক। করতে করতে কিছু জিনিস তোর থিঙ্কিংয়ে ঢুকে যাবে। আবার অনেক অনেক জিনিস ভুলে যাবি। ভুলে কেন গেছি, সেটাও চিন্তা করতে যাবি না। শুধু খেয়াল রাখবি, কোনো কিছু দরকার হলে সেটা আবার খুঁজে বের করতে পারবি কি না, সেই আইডিয়া থাকলেই হবে।
তাইলে প্রোগ্রামিং শিখতে গিয়ে কোনো প্রেশারই ফিল করবি না; বরং রিলাক্সে এনজয় করতে করতে সামনে এগুতে পারবি। মজাই মজা!!
Javascript naming Practice:
- তুই একটা প্রোগ্রাম লিখে দেখ, যেখানে তুই ভেরিয়েবল ডিক্লেয়ার করবি camelCase ব্যবহার করে। ধর, তুই তোর প্রিয় খাবার নামে একটা স্ট্রিং ভেরিয়েবল ডিক্লেয়ার কর। আর সেটার মান দে।
- তুই দেখ, ভেরিয়েবলের নাম case-sensitive কি না। একটা প্রোগ্রাম লিখে দুইটা ভেরিয়েবল ডিক্লেয়ার করবি, একটার নাম "city", আরেকটার নাম "City"। প্রথমটার মান "Chittagong" আর দ্বিতীয়টার মান "Dhaka" দে। console.log() দিয়ে দুইটা আউটপুট দেখ।
- তুই userName নামে একটা ভেরিয়েবল ডিক্লেয়ার করবি এবং তার মান Johan দে। এবার username নামে আরেকটা ভেরিয়েবল ডিক্লেয়ার করবি এবং তার মান Jovan দে। দুইটা আউটপুট দেখ console.log() দিয়ে।
- আমার বাসার ঠিকানা (বাসরের ঠিকানা বলি নাই কিন্তু) নামে ইংরেজিতে একটা ভেরিয়েবল ডিক্লেয়ার করবি। camelCase ব্যবহার করে ভেরিয়েবল ডিক্লেয়ার করবি। তারপর এইটার স্ট্রিং একটা মান সেট করবি।
- সুপার ওভারে কত রান হইছে, সেটার জন্য super নামে একটা ভেরিয়েবল ডিক্লেয়ার কর এবং মান সেট কর। করার পর যে আউটপুট দেখতে পাচ্ছস, সেটা কি ঠিক আছে নাকি কোনো সমস্যা আছে।
- তুই কোন ক্লাসে পড়স, সেটা লেখার জন্য class নামে একটা ভেরিয়েবল লিখ। তারপর আউটপুট এ দেখ, কী দেখায়।
- সেকেন্ড পজিশনে কে ব্যাট করবে, সেটার জন্য 2ndPosition নামে একটা ভেরিয়েবল লিখে সেখানে একজন ব্যাটসম্যানের নাম লিখে দে। দেখ আউটপুট দেখায় কি না। যদি সমস্যা করে, তাহলে কী করা লাগে, সেটা কমেন্ট করে ভেরিয়েবলের ওপরে লিখ।