ডিফল্ট প্যারামিটারস ES6 এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ফাংশন ডিফাইন করার সময় প্যারামিটারগুলোর জন্য ডিফল্ট মান নির্ধারণ করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি ফাংশন কল করার সময় প্যারামিটার না দেওয়া হলে একটি ডিফল্ট মান সেট করতে পারেন, যাতে ফাংশনটি সেই মান ব্যবহার করে কাজ করে। এটি কোডকে আরও পরিষ্কার ও সহজ করে তোলে এবং প্যারামিটার না দেওয়া হলে ত্রুটি (error) এড়ানো যায়।
ডিফল্ট প্যারামিটারস এর সিনট্যাক্স
ফাংশনের প্যারামিটার ডিফাইন করার সময় আপনি সরাসরি প্যারামিটারের জন্য একটি ডিফল্ট মান দিতে পারেন। এই মান শুধুমাত্র তখন ব্যবহার করা হয় যখন কলের সময় সেই প্যারামিটারটি সরবরাহ করা হয় না।
const functionName = (parameter = defaultValue) => {
// function body
};
উদাহরণ:
const greet = (name = "Guest") => {
console.log(`Hello, ${name}!`);
};
greet("John"); // "Hello, John!"
greet(); // "Hello, Guest!"
এখানে, যদি greet() ফাংশনে কোন আর্গুমেন্ট (প্যারামিটার) না দেওয়া হয়, তবে ডিফল্টভাবে name এর মান হবে "Guest"।
ডিফল্ট প্যারামিটারস এর সুবিধাসমূহ
প্যারামিটার না দেওয়ার পরিস্থিতিতে ডিফল্ট মান ব্যবহার: ফাংশন কলের সময় প্যারামিটার না দিলে ডিফল্ট মান ব্যবহার করা হয়, যা কোডে কোনো অতিরিক্ত চেকিং ছাড়াই কাজ করতে সাহায্য করে।
উদাহরণ:
const multiply = (a, b = 1) => a * b; console.log(multiply(5, 2)); // 10 console.log(multiply(5)); // 5 (b এর ডিফল্ট মান 1 হওয়ায়)কোড কমপ্লেক্সিটি কমানো: ফাংশন এর ভিতরে প্যারামিটার চেক করে ডিফল্ট মান অ্যাসাইন করার প্রক্রিয়া থেকে মুক্তি পাওয়া যায়। আপনি সরাসরি প্যারামিটারের ডিফল্ট মান নির্ধারণ করতে পারেন।
উদাহরণ:
const greet = (name, age = 25) => { console.log(`Name: ${name}, Age: ${age}`); }; greet("Alice", 30); // "Name: Alice, Age: 30" greet("Bob"); // "Name: Bob, Age: 25"ফাংশন কল করার সময় ফ্যালি-ব্যাক (Fallback) মেকানিজম: ডিফল্ট প্যারামিটারস ব্যবহার করলে আপনি কোনো ফাংশনে প্যারামিটার না দেয়ার ক্ষেত্রে সহজে ফ্যালি-ব্যাক মান (fallback value) নির্ধারণ করতে পারেন।
উদাহরণ:
const createAccount = (username, password = "12345") => { console.log(`Username: ${username}, Password: ${password}`); }; createAccount("johndoe"); // "Username: johndoe, Password: 12345" createAccount("janedoe", "abc"); // "Username: janedoe, Password: abc"
ডিফল্ট প্যারামিটারস এবং এক্সপ্রেশন
ডিফল্ট প্যারামিটারস এপ্লাই করার সময়, আপনি শুধু সরাসরি ভ্যালু নয়, বরং এক্সপ্রেশনও দিতে পারেন। যেমন, আপনি যদি কোন ক্যালকুলেশন বা ফাংশন কলের মাধ্যমে ডিফল্ট মান সেট করতে চান, তাহলে সেটা সম্ভব।
উদাহরণ:
const greet = (name = "Guest", time = new Date().getHours()) => {
console.log(`Hello, ${name}! The time is ${time}.`);
};
greet("John", 10); // "Hello, John! The time is 10."
greet(); // "Hello, Guest! The time is <current hour>."
এখানে, time প্যারামিটারটি ডিফল্টভাবে বর্তমান সময়ের ঘণ্টা (যে সময় ফাংশন কল করা হয়) নিয়ে সেট করা হয়।
ডিফল্ট প্যারামিটারস এর ব্যবহার
- অপশনাল প্যারামিটারস: ডিফল্ট প্যারামিটারস পদ্ধতিটি ফাংশনের অপশনাল প্যারামিটার পরিচালনায় খুব কার্যকর। আপনি ফাংশন কলের সময় প্যারামিটার না দিলেও সেটা সমস্যা সৃষ্টি করবে না।
- ফাংশনাল প্যাটার্নস: ডিফল্ট প্যারামিটারস সিস্টেম ফাংশনের মধ্যে বিভিন্ন ধরনের কাস্টমাইজেশন এবং কনফিগারেশন মান অ্যাসাইন করার জন্য ব্যবহার করা যায়।
ডিফল্ট প্যারামিটারস এবং undefined
আপনার ডিফল্ট প্যারামিটার শুধুমাত্র তখনই অ্যাক্টিভ হবে যখন প্যারামিটারটির মান undefined হবে। যদি প্যারামিটারটি null বা অন্য কোনো ভ্যালু দেয়া হয়, তাহলে সেটি ডিফল্ট মান হিসেবে গণ্য হবে না।
উদাহরণ:
const greet = (name = "Guest") => {
console.log(`Hello, ${name}!`);
};
greet(undefined); // "Hello, Guest!" (undefined দেয়ায় ডিফল্ট মান ব্যবহার হবে)
greet(null); // "Hello, null!" (null দেয়ায় ডিফল্ট মান ব্যবহার হবে না)
greet("John"); // "Hello, John!"
সারাংশ
ES6 এর ডিফল্ট প্যারামিটারস ফিচার ফাংশনগুলিকে আরও ব্যবহারযোগ্য এবং পঠনযোগ্য করে তোলে। এটি প্যারামিটার না দিলে ডিফল্ট মান ব্যবহারের সুবিধা দেয়, যা কোডে অতিরিক্ত চেকিংয়ের প্রয়োজনীয়তা কমিয়ে দেয় এবং ফাংশন ব্যবহারে সুবিধা বৃদ্ধি করে।
Read more