জাভাস্ক্রিপ্ট ফাংশন function কি-ওয়ার্ড দ্বারা ডিফাইন করা হয়।
আপনি ফাংশন ডিক্লেয়ারেশন অথবা ফাংশন এক্সপ্রেশন ব্যবহার করতে পারেন।
ফাংশন ডিক্লেয়ারেশনের গঠনপ্রণালীঃ
kt_satt_skill_example_id=1171
ফাংশনকে ডিক্লেয়ার করলেই ইহা এক্সিকিউট হয় না, ফাংশনকে কল করলে ইহা এক্সিকিউট হয়ঃ
kt_satt_skill_example_id=1173
জাভাস্ক্রিপ্টের সম্পাদনযোগ্য স্টেটমেন্টগুলোকে আলাদা করার জন্য সেমিকোলন(;) ব্যবহার করা হয়।
ফাংশন যেহেতু সম্পাদনযোগ্য স্টেটমেন্ট নয় তাই এর শেষে সেমিকোলন ব্যবহার করতে হয় না।
জাভাস্ক্রিপ্ট ফাংশনকে এক্সপ্রেশনের মাধ্যমেও ডিফাইন করা যায়।
ফাংশন এক্সপ্রেশনকে একটি ভ্যারিয়েবলের মধ্যে রাখা হয় এবং পরবর্তীতে ভ্যারিয়েবলকে ফাংশন হিসেবে ব্যবহার করা হয়ঃ
kt_satt_skill_example_id=1175
kt_satt_skill_example_id=1177
উপরের ফাংশনটি anonymous(নামহীন) ফাংশন।
যেসকল ফাংশনকে ভ্যারিয়েবলে রাখা হয়, তাদের নামের প্রয়োজন হয়না। তাদেরকে সবসময় ভ্যারিয়েবলের নাম দ্বারা কল করা হয়।
উপরের ফাংশনটি সেমিকোলন দ্বারা শেষ হয়েছে। কারন ইহা সম্পাদনযোগ্য স্টেটমেন্ট।
এই টিউটোরিয়ালের শুরুতে আপনি হয়েস্টিং(Hoisting) সম্পর্কে জানতে পেরেছেন।
একটি স্কোপের ডিক্লেয়ারেশনকে সবার উপরে নিয়ে যাওয়াই হয়েস্টিং। এটি জাভাস্ক্রিপ্টের ডিফল্ট বৈশিষ্ট্য।
হয়েস্টিং শুধুমাত্র ভ্যারিয়েবল ও ফাংশন ডিক্লেয়ারেশনের ক্ষেত্রে প্রযোজ্য। এই কারনে,ফাংশন ডিক্লেয়ারেশনের পূর্বেই ফাংশনকে কল করা যায়ঃ
kt_satt_skill_example_id=1178
ফাংশন এক্সপ্রেশন হয়েস্টিং-এর অধীনে পড়ে না।
ফাংশন এক্সপ্রেশনকে সেলফ ইনভোকিং ফাংশন করা যায়। ফাংশন ডিক্লেয়ারকে সেলফ ইনভোকিং ফাংশন করা যায় না।
সেলফ ইনভোকিং এক্সপ্রেশন কল করা ছাড়াই স্বয়ংক্রিয়ভাবে কাজ করে।
সেলফ ইনভোকিং ফাংশনের গঠনপ্রণালীঃ
kt_satt_skill_example_id=1179
kt_satt_skill_example_id=1181
জাভাস্ক্রিপ্টের ভাষায় একে self-invoking anonymous function বলা হয়।
জাভাস্ক্রিপ্ট ফাংশন ভ্যালু হিসেবেও ব্যবহার হতে পারেঃ
kt_satt_skill_example_id=1183
জাভাস্ক্রিপ্ট ফাংশন এক্সপ্রেশন হিসেবেও ব্যবহার হতে পারেঃ
kt_satt_skill_example_id=1185
জাভাস্ক্রিপ্টের typeof অপারেটর "function" কে ফাংশন হিসেবে রিটার্ন করে।
কিন্তু অবজেক্ট হিসেবে ফাংশনকে ভালোভাবে বর্ণনা করা যায়।
জাভাস্ক্রিপ্ট ফাংশনের প্রোপার্টি এবং মেথড উভয়ই রয়েছে।
ফাংশনকে কল করা হলে কতটি আর্গুমেন্ট থাকে arguments.length প্রোপার্টি ফাংশনের আর্গুমেন্টের সংখ্যা রিটার্ন করেঃ
kt_satt_skill_example_id=1188
toString() মেথডটি ফাংশনকে স্ট্রিং হিসেবে রিটার্ন করেঃ
kt_satt_skill_example_id=1191
ফাংশনকে অবজেক্টের প্রোপার্টি হিসেবে ডিফাইন করলে তাকে অবজেক্টের মেথড বলা হয়।
নতুন অবজেক্ট তৈরি করার জন্য ব্যবহার করা হলে ফাংশনকে অবজেক্ট কনস্ট্রাক্টর বলা হয়।
জাভাস্ক্রিপ্ট ফাংশন তার প্যারামিটারের ভ্যালু(আর্গুমেন্ট) যাচাই করে না।
এই টিউটোরিয়ালের পূর্বে আপনি ফাংশনের প্যারামিটার সম্পর্কে জানতে পেরেছেন।
kt_satt_skill_example_id=1194
ফাংশন ডেফিনেশনে প্রথম বন্ধনীর মধ্যে লেখা নামগুলো হলো ফাংশন প্যারামিটার।
ফাংশনকে কল করলে প্রথম বন্ধনীর মধ্যে প্যারামিটারের জায়গাতে যে ভ্যালু দেওয়া হয় তাকেই ফাংশন আর্গুমেন্ট বলা হয়।
জাভাস্ক্রিপ্ট ফাংশনে প্যারামিটারের ডাটা টাইপ নির্দেশ করতে হয় না।
জাভাস্ক্রিপ্ট ফাংশন আর্গুমেন্টের টাইপ চেক করে না।
জাভাস্ক্রিপ্ট ফাংশন কয়টি আর্গুমেন্ট গ্রহন করা হয়েছে তা পরীক্ষা করে না।
যদি ফাংশনকে প্যারামিটারের ভ্যালু(আর্গুমেন্ট) দেওয়া ছাড়া কল করা হয়, তাহলে এর ভ্যালু undefined সেট হবে।
মাঝে মধ্যে এটি গ্রহনযোগ্য, কিন্তু প্যারামিটারের একটি ডিফল্ট ভ্যালু সেট করে দেওয়া ভালোঃ
kt_satt_skill_example_id=1195
যদি একটি ফাংশনকে নির্ধারিত আর্গুমেন্টের চেয়ে বেশি আর্গুমেন্ট দ্বারা কল করা হয় তবে অতিরিক্ত আর্গুমেন্টকে আর্গুমেন্ট অবজেক্ট দ্বারা এক্সেস করা যাবে।
আর্গুমেন্ট অবজেক্ট হলো জাভাস্ক্রিপ্ট ফাংশনের একটি বিল্ট-ইন অবজেক্ট।
আর্গুমেন্ট অবজেক্ট ফাংশনকে কল করার সময় যে আর্গুমেন্ট দেওয়া হয় তার একটি অ্যারে তৈরি করে।
এই পদ্ধতিতে আপনি খুব সহজেই একটি ফাংশন দ্বারা একটি সংখ্যার লিস্ট থেকে সর্বোচ্চ ভ্যালু বের করতে পারবেনঃ
kt_satt_skill_example_id=1196
অথবা সকল ভ্যালু যোগ করার জন্য একটি ফাংশন তৈরি করতে পারেনঃ
kt_satt_skill_example_id=1197
আরও দেখুন...