Dynamic ডায়নামাইট
কিছু পোলাপান কারণে-অকারণে ঘাউরামি করে। তারা যেটা বলে, সেটাই করে। কোনো ফ্লেক্সিবিলিটি নাই। চেইঞ্জ করা যায় না। কিছু বলাও যায়। এইটার কিছু সুবিধা আর কিছু অসুবিধা তো আছেই।
আবার কিছু পোলাপান আছে মাটির মানুষ। তাদের যা বলবি, সেটার সাথেই আছে এবং খুবই ফ্লেক্সিবল। এত ফ্লেক্সিবল হওয়ারও কিছু সুবিধা-অসুবিধা তো আছেই।
জাভাস্ক্রিপ্ট একটু ফ্লেক্সিবল টাইপের। বিশেষ করে ভেরিয়েবল ডিক্লেয়ার করার ক্ষেত্রে জাভাস্ক্রিপ্ট অনেক ফ্লেক্সিবল। সেজন্য জাভাস্ক্রিপ্টে একটা ভেরিয়েবল লিখলে সেটার মধ্যে সংখ্যা রাখতে পারবি। চাইলে স্ট্রিং, বুলিয়ান রাখতে পারবি। আবার চাইলে স্ট্রিংওয়ালা ভেরিয়েবলের মান চেইঞ্জ করে বুলিয়ানও রেখে দিতে পারবি। সে মাইন্ড করবে না। এমনকি চাইলে সেখানে অ্যারে বা অবজেক্ট, এমনকি ফাংশনও রাখতে পারবি।
let data = 42; // Number
data = "Hello, World!"; // String
data = true; // Boolean
data = [10, 50, 66]; // array
data = { name: 'cat', say: 'meow' } // object
console.log(data)
Output: {name: 'cat', say: 'meow'}যদিও আমাদের এইভাবে করা উচিত না। তবে করা যে যায়, সেটা জানা থাকলে ভালো। কখনো এইরকম কেউ করলে সেটাকে না করতে বলতে পারবি। কারণ, ভেরিয়েবল ডিক্লেয়ার করতে পয়সা লাগে না। সেজন্য বিভিন্ন জিনিস এবং বিভিন্ন ধরনের জিনিস আলাদা আলাদা ভেরিয়েবলে রাখাই ভালো এবং সেগুলার জন্য মিনিংফুল নাম অর্থাৎ নাম দেখলেই বুঝা যায়, এইটার মধ্যে কী আছে। সেই অনুসারে নাম রাখাই ভালো।
জাভাস্ক্রিপ্ট কীভাবে বুঝে, কোনটার মধ্যে কী ধরনের জিনিস আছে?
সেটা হচ্ছে, জাভাস্ক্রিপ্ট ভেরিয়েবলের মান দেখে ঠিক করে নেয়। সেটার মধ্যে কী আছে। অন্য অনেক প্রোগ্রামিং ল্যাঙ্গুয়েজ আছে, যেগুলাতে ভেরিয়েবল ডিক্লেয়ার করার সময়ই বলে দিতে হয়, কী ধরনের মান রাখবি। এক্ষেত্রে জাভাস্ক্রিপ্ট পুরাই ফ্লেক্সিবল। এইখানে বলে দেয়া লাগে না, কী ধরনের মান রাখবি।
এই জন্য জাভাস্ক্রিপ্টকে বলে dynamic typing প্রোগ্রামিং ল্যাঙ্গুয়েজ। অর্থাৎ জাভাস্ক্রিপ্টের ভেরিয়েবলের টাইপ ডাইনামিক। এইটা মান থেকে ডাটার টাইপ ধরে নেয়। আবার কেউ কেউ এইটাকে loosely typed প্রোগ্রামিং ল্যাঙ্গুয়েজও বলে।
এইটার সুবিধা হচ্ছে কোড লেখা সহজ। আলাদা ডেটা টাইপ ডিক্লেয়ার করার দরকার পড়ে না। দ্রুত ডেভেলপমেন্ট করা যায়। আর অসুবিধা হচ্ছে, ভুল টাইপ নিয়ে কাজ করলে সমস্যা তৈরি হতে পারে। টাইপের ভুল বোঝাবুঝি ডিবাগ করা কঠিন হয়ে যেতে পারে।