Default Parameters ES6 (ECMAScript 2015) এ একটি নতুন ফিচার যা ফাংশনের প্যারামিটারগুলোতে ডিফল্ট মান (default values) সেট করার সুবিধা দেয়। এই ফিচারের মাধ্যমে আপনি ফাংশনে আর্গুমেন্ট না দিলে, প্যারামিটারগুলো একটি ডিফল্ট মান গ্রহণ করবে, যা ফাংশনের শরীরে দেওয়া থাকে।
Default Parameters এর সিনট্যাক্স
Default parameters ব্যবহারের জন্য, ফাংশনের প্যারামিটারগুলির মধ্যে ডিফল্ট মান = চিহ্ন দিয়ে সেট করা হয়। যদি ফাংশন কলের সময় সেই প্যারামিটারটির মান না দেয়া হয়, তাহলে ডিফল্ট মান ব্যবহার করা হবে।
উদাহরণ:
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet("John"); // "Hello, John!"
greet(); // "Hello, Guest!"
এখানে, name প্যারামিটারটির ডিফল্ট মান "Guest"। যখন ফাংশনটি কল করা হয় এবং name প্যারামিটারটি দেয়া হয় না, তখন "Guest" ব্যবহার করা হবে।
Default Parameters এর বৈশিষ্ট্য
ফাংশনের আর্গুমেন্টের জন্য ডিফল্ট মান নির্ধারণ: যদি কোনো প্যারামিটারটি ফাংশনে দেয়া না হয়, তবে সেটির ডিফল্ট মানটি গ্রহণ করা হবে।
উদাহরণ:
function multiply(a, b = 2) { return a * b; } console.log(multiply(5)); // 10 (b এর জন্য ডিফল্ট মান 2 ব্যবহার হবে) console.log(multiply(5, 3)); // 15 (b এর মান 3 দেয়া হয়েছে, তাই ডিফল্ট মান প্রযোজ্য হবে না)এখানে,
bপ্যারামিটারটির ডিফল্ট মান ২। যখন শুধুমাত্রaপ্যারামিটার দেওয়া হয়, তখনbডিফল্ট ২ হবে।একাধিক প্যারামিটারের জন্য ডিফল্ট মান ব্যবহার: আপনি একাধিক প্যারামিটারের জন্যও ডিফল্ট মান নির্ধারণ করতে পারেন। এগুলির মধ্যে যেগুলোর মান সরাসরি দেয়া হবে না, তারা তাদের ডিফল্ট মান গ্রহণ করবে।
উদাহরণ:
function createUser(name = "John Doe", age = 25, country = "USA") { return `Name: ${name}, Age: ${age}, Country: ${country}`; } console.log(createUser()); // "Name: John Doe, Age: 25, Country: USA" console.log(createUser("Alice", 30)); // "Name: Alice, Age: 30, Country: USA" console.log(createUser("Bob", 40, "Canada")); // "Name: Bob, Age: 40, Country: Canada"এখানে,
name,age, এবংcountryপ্যারামিটারগুলোর জন্য ডিফল্ট মান দেয়া আছে। আপনি যদি কোনো আর্গুমেন্ট না দেন, তাহলে ডিফল্ট মান ব্যবহার হবে।নাম্বার, স্ট্রিং বা এক্সপ্রেশন হিসেবে ডিফল্ট মান: ডিফল্ট মান শুধুমাত্র সরাসরি মানই হতে পারে না, বরং আপনি এক্সপ্রেশন বা ফাংশন কলও দিতে পারেন।
উদাহরণ:
function getDiscount(price, discount = price * 0.1) { return price - discount; } console.log(getDiscount(100)); // 90 (ডিফল্ট ডিসকাউন্ট ১০% ব্যবহার হবে) console.log(getDiscount(100, 20)); // 80 (ডিফল্ট ডিসকাউন্ট বাদ দিয়ে ২০ দেওয়া হয়েছে)এখানে,
discountপ্যারামিটারটির জন্য ডিফল্ট মান হিসেবে একটি এক্সপ্রেশন (price * 0.1) দেয়া হয়েছে। যদি ব্যবহারকারী ডিসকাউন্ট না দেয়, তাহলে এটি ১০% ডিসকাউন্ট হিসেবে গণনা করা হবে।ডিফল্ট প্যারামিটার এবং
undefined: যদি প্যারামিটারটির মানundefinedদিয়ে সেট করা হয়, তাহলে ডিফল্ট মান কার্যকর হবে। এটি গুরুত্বপূর্ণ কারণnullএবং অন্যান্য ভ্যালুসমূহ ডিফল্ট মানের সাথে প্রতিস্থাপিত হয় না।উদাহরণ:
function greet(name = "Guest") { console.log(`Hello, ${name}!`); } greet(undefined); // "Hello, Guest!" (undefined দেয়ার ফলে ডিফল্ট মান হবে) greet(null); // "Hello, null!" (null দেয়ার ফলে ডিফল্ট মান কাজ করবে না)
Default Parameters এর সুবিধা
- কোড কমানো: ডিফল্ট মান নির্ধারণের মাধ্যমে আপনি ফাংশনের মধ্যে অতিরিক্ত চেকিং বা শর্তসাপেক্ষ কোড লিখতে বাধ্য হবেন না।
- কাস্টমাইজড ফাংশন: ডিফল্ট প্যারামিটার ব্যবহার করে ফাংশনের আচরণ কাস্টমাইজ করা যায় এবং কোডকে আরও পরিষ্কার এবং নির্ভরযোগ্য করা যায়।
- ফাংশনকে আরও নমনীয় করা: প্যারামিটার না দেয়া হলেও ফাংশনটি ঠিকঠাক কাজ করবে, যা কোডের ফ্লেক্সিবিলিটি বৃদ্ধি করে।
সারাংশ
ES6 এর Default Parameters ফিচারটি ফাংশনের প্যারামিটারগুলোর জন্য ডিফল্ট মান সেট করার সহজ পদ্ধতি প্রদান করে। এর মাধ্যমে, ফাংশনের কলের সময় প্যারামিটার না দিলে, ডিফল্ট মান ব্যবহার করা হয়, যা কোডকে আরও পরিষ্কার, সংক্ষিপ্ত এবং কার্যকরী করে।
ডিফল্ট প্যারামিটারস 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 এর ডিফল্ট প্যারামিটারস ফিচার ফাংশনগুলিকে আরও ব্যবহারযোগ্য এবং পঠনযোগ্য করে তোলে। এটি প্যারামিটার না দিলে ডিফল্ট মান ব্যবহারের সুবিধা দেয়, যা কোডে অতিরিক্ত চেকিংয়ের প্রয়োজনীয়তা কমিয়ে দেয় এবং ফাংশন ব্যবহারে সুবিধা বৃদ্ধি করে।
ES6 এ ডিফল্ট প্যারামিটার (Default Parameters) এর সুবিধা যুক্ত করা হয়েছে, যা ফাংশনের প্যারামিটারগুলোর জন্য ডিফল্ট মান নির্ধারণ করতে সহায়তা করে। এর মানে হল যে, যদি কোন প্যারামিটার ফাংশন কল করার সময় প্রদান না করা হয়, তবে সেটি পূর্বনির্ধারিত ডিফল্ট মান গ্রহণ করবে।
ডিফল্ট প্যারামিটার এর সিনট্যাক্স
ES6 তে ডিফল্ট প্যারামিটার ব্যবহার করতে, আপনি প্যারামিটার ডিক্লেয়ার করার সময় তার মান নির্ধারণ করতে পারেন।
সিনট্যাক্স:
function functionName(parameter = defaultValue) {
// function body
}
এখানে, parameter হল প্যারামিটার এবং defaultValue হল ডিফল্ট মান যা প্যারামিটারটির জন্য দেওয়া হবে যদি তা ফাংশন কলের সময় সরবরাহ না করা হয়।
ডিফল্ট প্যারামিটার উদাহরণ
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet("John"); // "Hello, John!"
greet(); // "Hello, Guest!"
এখানে, name প্যারামিটারটির জন্য "Guest" ডিফল্ট মান নির্ধারণ করা হয়েছে। যখন greet ফাংশন কল করা হয় এবং name প্যারামিটার প্রদান করা হয় না, তখন "Guest" ডিফল্ট মান ব্যবহার করা হবে।
ডিফল্ট প্যারামিটার সহ একাধিক প্যারামিটার
আপনি একাধিক প্যারামিটারেও ডিফল্ট মান সেট করতে পারেন। যদি কোনো প্যারামিটার ফাংশন কলের সময় প্রদান না করা হয়, তবে তার ডিফল্ট মান ব্যবহার করা হবে।
উদাহরণ:
function createProfile(name = "Anonymous", age = 25, location = "Unknown") {
console.log(`Name: ${name}, Age: ${age}, Location: ${location}`);
}
createProfile("Alice", 30, "New York"); // Name: Alice, Age: 30, Location: New York
createProfile("Bob"); // Name: Bob, Age: 25, Location: Unknown
createProfile(); // Name: Anonymous, Age: 25, Location: Unknown
এখানে, createProfile ফাংশনে তিনটি প্যারামিটার আছে, যার প্রত্যেকটি জন্য ডিফল্ট মান নির্ধারণ করা হয়েছে। যদি কোনো প্যারামিটার প্রদান না করা হয়, তবে ফাংশন সেই প্যারামিটারটির জন্য ডিফল্ট মান গ্রহণ করবে।
ডিফল্ট প্যারামিটার এবং এক্সপ্রেশন
আপনি ডিফল্ট প্যারামিটার হিসেবে এক্সপ্রেশনও ব্যবহার করতে পারেন। এর মানে হচ্ছে, আপনি ফাংশনের প্যারামিটার হিসেবে কোনো ভ্যালু বা ক্যালকুলেশন সরবরাহ করতে পারেন, যা ডিফল্ট মান হিসেবে কাজ করবে।
উদাহরণ:
function calculatePrice(price, taxRate = price * 0.1) {
const totalPrice = price + taxRate;
console.log(`Total Price: ${totalPrice}`);
}
calculatePrice(100); // Total Price: 110 (অটোমেটিক taxRate = 10% of 100)
calculatePrice(100, 20); // Total Price: 120 (taxRate = 20)
এখানে, taxRate এর জন্য price * 0.1 এক্সপ্রেশন ডিফল্ট মান হিসেবে নির্ধারণ করা হয়েছে। যদি ব্যবহারকারী taxRate প্যারামিটার প্রদান না করে, তবে এটি স্বয়ংক্রিয়ভাবে price এর ১০% হিসেবে হিসাব করা হবে।
ডিফল্ট প্যারামিটার ব্যবহার করার সুবিধা
- কোড কম্প্যাক্ট করা: ডিফল্ট প্যারামিটার ব্যবহার করলে, ফাংশনে
ifচেক ব্যবহার না করেও ডিফল্ট মান প্রদান করা সম্ভব হয়, যা কোডকে সংক্ষিপ্ত এবং পরিষ্কার করে। - ভ্যালিডেশন সহজ করা: আপনি ফাংশন কলের সময় ডিফল্ট মান প্রদান করতে পারেন, ফলে মান যাচাইয়ের জন্য অতিরিক্ত কোড লেখা থেকে মুক্তি পাওয়া যায়।
- ব্যবহারকারীর অভিজ্ঞতা উন্নয়ন: ডিফল্ট প্যারামিটার ব্যবহার করলে, ব্যবহারকারীকে সব প্যারামিটার সরবরাহ করতে হবে না, এবং যদি কোন প্যারামিটার মিস হয়, তবে ফাংশনটি সঠিকভাবে কাজ করবে।
সারাংশ
ES6 এর ডিফল্ট প্যারামিটার একটি শক্তিশালী ফিচার যা ফাংশনে প্যারামিটার প্রদান না করা হলে তাদের জন্য ডিফল্ট মান নির্ধারণ করতে সাহায্য করে। এটি কোডের সাদৃশ্য এবং ক্লিন কোড লেখার জন্য বিশেষভাবে উপকারী।
ES6 তে ডিফল্ট প্যারামিটারস এবং ডেস্ট্রাকচারিং দুটি শক্তিশালী ফিচার যা ফাংশন এবং অবজেক্টের ব্যবহারের সময় কোডের গঠন এবং পাঠযোগ্যতা বৃদ্ধি করতে সাহায্য করে। এই দুটি ফিচার একত্রে ব্যবহার করলে কোড আরও বেশি কার্যকরী ও সহজ হতে পারে।
ডিফল্ট প্যারামিটারস (Default Parameters)
ডিফল্ট প্যারামিটারস ব্যবহারের মাধ্যমে আপনি একটি ফাংশনের প্যারামিটারগুলির জন্য একটি ডিফল্ট মান নির্ধারণ করতে পারেন। যদি কোনো প্যারামিটার প্রদান না করা হয়, তাহলে ঐ প্যারামিটারটির ডিফল্ট মান স্বয়ংক্রিয়ভাবে ব্যবহৃত হবে।
উদাহরণ:
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet("John"); // "Hello, John!"
greet(); // "Hello, Guest!"
এখানে, যদি greet ফাংশনে প্যারামিটার হিসেবে name প্রদান না করা হয়, তাহলে "Guest" ডিফল্ট মান হিসেবে নেওয়া হবে।
ডেস্ট্রাকচারিং (Destructuring)
ডেস্ট্রাকচারিং ES6 এর একটি ফিচার যা অবজেক্ট বা অ্যারে থেকে ডেটা বের করে ভ্যারিয়েবলে সংরক্ষণ করতে সাহায্য করে। এটি কোডকে আরও পরিষ্কার এবং সংক্ষিপ্ত করে।
অবজেক্ট ডেস্ট্রাকচারিং উদাহরণ:
const person = {
name: "John",
age: 30,
city: "New York"
};
const { name, age } = person;
console.log(name); // "John"
console.log(age); // 30
এখানে, অবজেক্টের name এবং age প্রপার্টিগুলি সরাসরি ভ্যারিয়েবলে ডেস্ট্রাক্ট করে নেওয়া হয়েছে।
অ্যারে ডেস্ট্রাকচারিং উদাহরণ:
const numbers = [10, 20, 30];
const [first, second] = numbers;
console.log(first); // 10
console.log(second); // 20
এখানে, অ্যারের প্রথম দুইটি মান ভ্যারিয়েবলে ডেস্ট্রাক্ট করে সংরক্ষণ করা হয়েছে।
ডিফল্ট প্যারামিটারস এবং ডেস্ট্রাকচারিং একত্রে ব্যবহার
যখন আপনি ডিফল্ট প্যারামিটারস এবং ডেস্ট্রাকচারিং একত্রে ব্যবহার করেন, তখন আপনি ফাংশন প্যারামিটার হিসেবে অবজেক্ট বা অ্যারে ব্যবহার করে তার ভ্যালুগুলিকে ডেস্ট্রাক্ট করতে পারেন এবং সেই ভ্যালুগুলির জন্য ডিফল্ট মানও নির্ধারণ করতে পারেন।
অবজেক্ট ডেস্ট্রাকচারিং এবং ডিফল্ট প্যারামিটারস উদাহরণ:
function greet({ name = "Guest", age = 25 } = {}) {
console.log(`Hello, ${name}! You are ${age} years old.`);
}
greet({ name: "John", age: 30 }); // "Hello, John! You are 30 years old."
greet({ name: "Alice" }); // "Hello, Alice! You are 25 years old."
greet(); // "Hello, Guest! You are 25 years old."
এখানে, ফাংশনের প্যারামিটার হিসেবে একটি অবজেক্ট নেওয়া হয়েছে। অবজেক্টের name এবং age প্রপার্টি ডেস্ট্রাক্ট করে নেওয়া হয়েছে এবং তাদের জন্য ডিফল্ট মানও দেওয়া হয়েছে। যদি কোনো প্রপার্টি পাওয়া না যায়, তাহলে ডিফল্ট মান ব্যবহার হবে।
অ্যারে ডেস্ট্রাকচারিং এবং ডিফল্ট প্যারামিটারস উদাহরণ:
function printNumbers([first = 1, second = 2] = []) {
console.log(`First: ${first}, Second: ${second}`);
}
printNumbers([10, 20]); // "First: 10, Second: 20"
printNumbers([5]); // "First: 5, Second: 2"
printNumbers(); // "First: 1, Second: 2"
এখানে, অ্যারের প্রথম দুটি মান ডেস্ট্রাক্ট করা হয়েছে এবং তাদের জন্য ডিফল্ট মান দেওয়া হয়েছে। যদি অ্যারে প্রদান না করা হয় বা কোন মান না পাওয়া যায়, তাহলে ডিফল্ট মান ব্যবহার হবে।
উপসংহার
ডিফল্ট প্যারামিটারস এবং ডেস্ট্রাকচারিং একত্রে ব্যবহার করলে কোডের কার্যকারিতা এবং পাঠযোগ্যতা অনেক উন্নত হয়। আপনি যখন কোনো অবজেক্ট বা অ্যারের ডেটা ডেস্ট্রাক্ট করেন এবং সাথে সাথে ডিফল্ট মান সেট করেন, তখন আপনি ফাংশনের ভিতরে প্রয়োজনীয় ডেটা সহজেই ব্যবহার করতে পারেন, আর কোনো ডেটা না পাওয়া গেলে ডিফল্ট মান ব্যবহার করতে পারবেন। এই ফিচারগুলো কোডের গঠনকে আরও সুন্দর ও কার্যকরী করে তোলে।
Read more