ডিফল্ট প্যারামিটার ফাংশন নিয়ে কাজ করা অনেক সহজ করে তোলে। এর মাধ্যমে আপনি ফাংশনকে বলতে পারেন যে আর্গুমেন্ট পাস না করলে কোন মান ব্যবহার করবে। এটি এরর এড়াতে এবং কোডকে পড়া সহজ করতে সাহায্য করে।
জাভাস্ক্রিপ্টে ডিফল্ট প্যারামিটার ES2015 (ES6) এ যোগ করা হয়েছে। এটি ফাংশনকে পূর্বনির্ধারিত মান দিয়ে ইনিশিয়ালাইজ করতে দেয়।
এই গাইডে ডিফল্ট প্যারামিটার কী, কীভাবে ব্যবহার করবেন, এবং কোন ধরনের এক্সপ্রেশন ডিফল্ট প্যারামিটার হিসেবে ব্যবহার করা যায় তা উদাহরণসহ আলোচনা করব।
প্যারামিটার বনাম আর্গুমেন্ট: পার্থক্য
শুরু করার আগে একটি সাধারণ প্রশ্নের উত্তর জানা দরকার: প্যারামিটার আর আর্গুমেন্টের মধ্যে পার্থক্য কী? জাভাস্ক্রিপ্টে ডিফল্ট প্যারামিটার বুঝতে এটা জানা জরুরি।
প্যারামিটার হলো জাভাস্ক্রিপ্ট ফাংশনে পাস করা একটি নামযুক্ত ভেরিয়েবল। এর সরাসরি কোনো মান থাকে না। এটি ফাংশনে পাস করা ভ্যালুর জন্য একটি প্লেসহোল্ডার। উদাহরণ:
function sayHello(name) { console.log("Hello, " + name); }
এখানে name হলো প্যারামিটার। এর কোনো মান নেই।
আর্গুমেন্ট হলো ফাংশন কল করার সময় পাস করা মান:
sayHello("Brett");
ফলাফল: "Hello, Brett"। এখানে "Brett" হলো আর্গুমেন্ট।
আর্গুমেন্ট ছাড়া ফাংশন কল করলে সমস্যা হয়:
sayHello()
ফলাফল: Hello, undefined। কারণ কোনো মান পাস করা হয়নি।
জাভাস্ক্রিপ্ট ডিফল্ট প্যারামিটার
এই সমস্যা সমাধান করতে ডিফল্ট প্যারামিটার ব্যবহার করুন। এতে আপনি একটি ডিফল্ট মান নির্দিষ্ট করতে পারেন যা আর্গুমেন্ট না দিলে অটোমেটিক্যালি প্যারামিটারের মান হবে।
ডিফল্ট ভ্যালু এসাইন করার সিনট্যাক্স:
function sayHello(name="World") { console.log("Hello, " + name); } sayHello();
ফলাফল: Hello, World। আর্গুমেন্ট দেওয়া হয়নি, তবু ডিফল্ট মান "World" ব্যবহার হয়েছে।
এটি ম্যানুয়ালি চেক করার চেয়ে অনেক সহজ।
ডিফল্ট প্যারামিটার হিসেবে যেকোনো প্রিমিটিভ ভ্যালু বা অবজেক্ট ব্যবহার করা যায়। বৈধ উদাহরণ:
- String: "Latte"
- Number: 2.40
- Boolean: true
- Array: ["Steven", false]
- Object: {name: "Steven", loyaltyCustomer: false}
একাধিক ডিফল্ট প্যারামিটার নির্দিষ্ট করা
একটি ফাংশনে আপনি চাইতেই তত ডিফল্ট প্যারামিটার ব্যবহার করতে পারেন। উদাহরণ:
function createOrder(coffee="Espresso", price=1.75) { console.log("Order: " + coffee); console.log("Price: $" + price); } createOrder();
ফলাফল:
Order: Espresso Price: $1.75
নियमিত প্যারামিটার ও ডিফল্ট প্যারামিটার মিক্স করতে পারেন। তবে নিয়মিত প্যারামিটারগুলো ডিফল্ট প্যারামিটারগুলোর আগে লিখতে হবে। উদাহরণ:
function createOrder(coffee, price=1.75) { console.log("Order: " + coffee); console.log("Price: $" + price); } createOrder("Cappuccino");
ফলাফল:
Order: Cappuccino Price: $1.75
এখানে coffee রেগুলার প্যারামিটার, তাই আর্গুমেন্ট দিতে হয়েছে। price-র ডিফল্ট মান আছে, তাই দেওয়া নেই।
ফাংশনকে ডিফল্ট প্যারামিটার হিসেবে ব্যবহার করা
এক ফাংশনকে ডিফল্ট প্যারামিটার হিসেবে সেট করা যায়। এটি তখন কাজে আসে যখন মান অন্য একটি ফাংশন দিয়ে ক্যালকুলেট করতে হয়।
উদাহরণ: একটি ভিডিও গেমের জন্য যাদুকরী ইউজারনেম জেনারেট করা।
function getRandomUsername() { var number = Math.floor(Math.random() * 100); var username_list = ['Crash', 'Steve', 'Lucinda', 'Ellie']; var username = username_list[Math.floor(Math.random() * username_list.length)]; var final_username = username + number; return final_username; } function createUser(username = getRandomUsername(), email) { console.log('Your username is: ' + username); console.log('Your email is: ' + email); } createUser('test@test.com');
ফলাফল (উদাহরণ):
Your username is: Crash87 Your email is: test@test.com
এখানে getRandomUsername() ফাংশনটি র্যান্ডম ইউজারনেম জেনারেট করে। createUser ফাংশনে username প্যারামিটারের ডিফল্ট মান হিসেবে সেট করা হয়েছে। ফলে ইউজারনেম না দিলে অটোমেটিক্যালি র্যান্ডম একটি ইউজারনেম তৈরি হয়ে যাবে।
উপসংহার
ডিফল্ট প্যারামিটার আপনাকে একটি ফাংশনের প্যারামিটারের জন্য ফলব্যাক মান সেট করতে দেয়। এটি ফাংশনকে বেশি রিডেবল করে এবং আর্গুমেন্ট মিসিং থাকলে সৃষ্টি হতে পারে এমন এররগুলো এড়াতে সাহায্য করে।
এখন আপনি একজন এক্সপার্টের মতো জাভাস্ক্রিপ্ট ডিফল্ট প্যারামিটার ব্যবহার করতে পারবেন!