কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে অজানা সংখ্যক আর্গুমেন্ট ফাংশনে পাস করা

জাভাস্ক্রিপ্টে ফাংশন কল করার সময় আপনি যেকোনো সংখ্যক আর্গুমেন্ট পাস করতে পারেন। ফাংশন প্যারামিটারের লিমিট নেই। এর মানে ফাংশনগুলো ট্রেডিশনাল অর্থে ওভারলোড করা যায় না।

arguments অবজেক্ট হলো সব নন-অ্যারো ফাংশনে উপলব্ধ একটি লোকাল ভেরিয়েবল। ফাংশনের ভিতরে আর্গুমেন্টগুলো এক্সেস করতে arguments অবজেক্ট ব্যবহার করা হয়। এর এন্ট্রি থাকে ফাংশনে পাস করা প্রতিটি আর্গুমেন্টের জন্য, প্রথম এন্ট্রির ইন্ডেক্স ০।

উদাহরণ: আর্গুমেন্ট এক্সেস

arguments[0] // প্রথম আর্গুমেন্ট
arguments[1] // দ্বিতীয় আর্গুমেন্ট
arguments[2] // তৃতীয় আর্গুমেন্ট

নোট: arguments হলো একটি অ্যারে-লাইক অবজেক্ট যাতে length প্রপার্টি এবং শূন্য-ভিত্তিক ইন্ডেক্স থাকে, কিন্তু এর অ্যারের বিল্ট-ইন মেথড (যেমন forEach(), map()) নেই।

অবিচ্ছিন্ন আর্গুমেন্ট গ্রহণের উদাহরণ

function printAllArguments(a, b) {
  console.log("First arg: " + a);
  console.log("Second arg: " + b);
  console.log("All args: " + arguments);
}

printAllArguments(1);
printAllArguments(1, "hello");
printAllArguments(1, "hello", 1, "hello");

আউটপুট

First arg: 1 Second arg: undefined All args: {"0":1}
First arg: 1 Second arg: hello All args: {"0":1,"1":"hello"}
First arg: 1 Second arg: hello All args: {"0":1,"1":"hello","2":1,"3":"hello"}

মডার্ন অ্যাল্টারনেটিভ: Rest Parameters (ES6)

function printAllArguments(...args) {
  console.log("All args:", args); // রিয়েল অ্যারে
  args.forEach(arg => console.log(arg));
}

printAllArguments(1, "hello", 1, "hello");

...args (রেস্ট প্যারামিটার) একটি রিয়েল অ্যারে রিটার্ন করে, যাতে সব অ্যারে মেথড ব্যবহার করা যায়। অ্যারো ফাংশনে arguments অবজেক্ট নেই, সেখানে রেস্ট প্যারামিটার ব্যবহার করতে হয়।

  1. জাভাস্ক্রিপ্ট Number() ফাংশন

  2. জাভাস্ক্রিপ্টে প্যারামিটার এবং আর্গুমেন্ট

  3. জাভাস্ক্রিপ্টে ফাংশনকে কলব্যাক হিসেবে পাস করা

  4. জাভাস্ক্রিপ্টে সংখ্যার ফ্যাক্টোরিয়াল (Factorial) বের করা