জেভাস্ক্রিপ্ট ফাংশন ডিফাইনিশন
- পূর্ববর্তী পৃষ্ঠা জেএস অবজেক্ট রেফারেন্স
- পরবর্তী পৃষ্ঠা জেএস ফাংশন পারামিটার
কোর্স সুপারিশ: function
JavaScript ফাংশনটি ব্যবহার করেকীওয়ার্ডরূপায়িত
আপনি ফাংশনটি ব্যবহার করতে পারেনডিক্লেয়ারফাংশনএক্সপ্রেশন。
ফাংশন ঘোষণা
এই টিউটোরিয়ালের আগের সময়ে, আপনি এই বাক্যবিধাটি শিখেছেন:ডিক্লেয়ারফাংশন:
function ফাংশন নাম(প্যারামিটার) { কার্যকরী কোড }
ঘোষিত ফাংশনটি সরাসরি কার্যকর হয় না। তারা 'কথা বলতে রাখা' হয়, যা পরের সময়ে কার্যকর হবে, যখন তারা আমন্ত্রণ করা হয়
ইনস্ট্যান্স
function myFunction(a, b) { return a * b; }
সমাপ্ত হয়েছে; এটা কার্যকরী JavaScript বাক্যকে বিভক্ত করে
কারণ ফাংশনডিক্লেয়ারএকটি কার্যকরী বাক্য নয়, সমাপ্ত হয়েছে; এটা সমাপ্ত হয়েছে একটি সমাপ্ত বাক্য নয়
ফাংশন একসপ্রেশন
JavaScript ফাংশনটি ব্যবহার করেএক্সপ্রেশনসংজ্ঞায়িত
ফাংশন একসপ্রেশনটি বিন্যাসমূলককে সংরক্ষণ করা যেতে পারে:
ইনস্ট্যান্স
var x = function (a, b) {return a * b};
ফাংশন এক্সপ্রেশনটি বিন্যাসমূলককে সংরক্ষণ করার পরে, এই বিন্যাসমূলকটি ফাংশন হিসাবে ব্যবহার করা যেতে পারে:
ইনস্ট্যান্স
var x = function (a, b) {return a * b}; var z = x(4, 3);
উপরের ফাংশন একটিঅজ্ঞাত ফাংশন(নামহীন ফাংশন)。
বিন্যাসমূলক ফাংশনটির নাম আছে না। তারা সরাসরি বিন্যাসমূলক নাম দ্বারা আমন্ত্রণ করা
উপরোক্ত ফাংশনটি সমাপ্ত হয়েছে; কারণ তা একটি কার্যকরী বাক্যের অংশ
Function() কন্সট্রাকটর
যেমন আপনি আগের উদাহরণটিতে দেখেছেন, JavaScript ফাংশনটি ব্যবহার করে function
কীওয়ার্ড দ্বারা সংজ্ঞায়িত
ফাংশনটি নামটির মাধ্যমে Function()
এর মাধ্যমে নির্মিত বৈদ্যুতিক জেভাস্ক্রিপ্ট ফাংশন
ইনস্ট্যান্স
var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3);
ফাংশন কনস্ট্রাক্টর ব্যবহার করতে পারবেন না। এই উদাহরণটিতে এইভাবেও একই হবে:
ইনস্ট্যান্স
var myFunction = function (a, b) {return a * b}; var x = myFunction(4, 3);
অধিকাংশ ক্ষেত্রে, আপনি জেভাস্ক্রিপ্টে new
শব্দ
ফাংশন হোস্টিং
এই টিউটোরিয়ালের শুরুতে, আপনি "হোস্টিং" (hoisting) নিয়ে শিখেছেন
Hoisting হল জেভাস্ক্রিপ্ট যাডিক্লেয়ারমূলত একটি স্ট্যান্ডার্ড ব্যবহার
Hoisting ব্যবহার করা হয় বহুতো বহুতো বহুতো
এই কারণে, জেভাস্ক্রিপ্ট ফাংশন ডিক্লেয়ারেশনের আগেও কল করা যায়:
myFunction(5); function myFunction(y) { return y * y; }
এক্সপ্রেশনের মাধ্যমে সংজ্ঞায়িত ফাংশন হোস্টিং করা হবে না。
স্বয়ংক্রিয় ফাংশন
ফাংশন এক্সপ্রেশন হিসাবে "স্বয়ংক্রিয়"
স্বয়ংক্রিয় কল এক্সপ্রেশন স্বয়ংক্রিয়ভাবে কল করা হয় (ভাবে), যদি কোনও কল না করা হয়
ফাংশন এক্সপ্রেশন স্বয়ংক্রিয়ভাবে চালানো হবে, যদি এক্সপ্রেশনের পরে ()
。
আপনি ফাংশন ডিক্লেয়ারেশনকে স্বয়ংক্রিয়ভাবে কল করতে পারবেন না。
আপনাকে ফাংশনটিকে ফাংশন এক্সপ্রেশন হিসাবে ইনডিকেট করতে ফাংশনের চারপাশে ব্র্যাকেট যোগ করতে হবে:
ইনস্ট্যান্স
(function () { var x = "Hello!!"; // আমি আমাকে বলবো }();
উপরের ফাংশন একটিঅসামান্য স্বয়ংক্রিয় ফাংশন(নামহীন ফাংশন)。
ফাংশন একটি মান হিসাবে ব্যবহার করা যায়
জেভাস্ক্রিপ্ট ফাংশন একটি মান হিসাবে ব্যবহার করা যায়:
ইনস্ট্যান্স
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3);
জেভাস্ক্রিপ্ট ফাংশন এক্সপ্রেশনে ব্যবহার করা যায়:
ইনস্ট্যান্স
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2;
ফাংশন ওবজেক্ট
জেভাস্ক্রিপ্টে typeof
অপারেটর ফাংশনকে "function
"。
কিন্তু জেভাস্ক্রিপ্ট ফাংশনকে ওবজেক্ট হিসাবে বর্ণনা করা ভালো
জেভাস্ক্রিপ্ট ফাংশনগুলো সবকটা আছেপ্রকৃতিএবংমেথড。
arguments.length
ফাংশনটি বোঝানোর সময় পাঠানো প্যারামিটারের সংখ্যা রিটার্ন করবে:
ইনস্ট্যান্স
function myFunction(a, b) { return arguments.length; }
toString()
মেথড ফাংশনটি স্ট্রিং ফরম্যাটে ফাংশন রিটার্ন করে:
ইনস্ট্যান্স
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();
অবজেক্ট প্রক্রিয়াসূচক ফাংশন, অবজেক্ট মেথড নামে পরিচিত
নতুন অবজেক্ট তৈরি করার জন্য ডিজাইন করা ফাংশন, অবজেক্ট কনস্ট্রাকটর (অবজেক্ট কনস্ট্রাকটর) নামে পরিচিত
অর্ডার ফাংশন
অর্ডার ফাংশনগুলি ফাংশন এক্সপ্রেশনকে সংক্ষিপ্ত স্ক্রিপ্ট লিখতে অনুমতি দেয়。
আপনি function কীওয়ার্ড, return কীওয়ার্ড এবং ব্র্যাকেটকে ব্যবহার করতে হয় না。
ইনস্ট্যান্স
// ES5 var x = function(x, y) { return x * y; } // ES6 const x = (x, y) => x * y;
অর্ডার ফাংশনগুলি নিজস্ব this নেই।তাই, তারা অবজেক্ট মেথড হিসাবে ব্যবহার করা যায় না。
অর্ডার ফাংশন উঠে আসে না।তাদেরকে ব্যবহার করা আগে নির্দিষ্ট করা হয় উচিত。
const ব্যবহার করা হয় var-এর তুলনায় সুরক্ষিত, কারণ ফাংশন এক্সপ্রেশনগুলি সর্বদা একটি কনস্ট্যান্ট মানের হয়。
যদি ফাংশন একটি একক স্টেটমেন্ট হয়, তবে return কীওয়ার্ড এবং ব্র্যাকেটকে সংক্ষেপ করা হয়।তাই, তাদের সংরক্ষণ একটি ভালো অভ্যাস হতে পারে:
ইনস্ট্যান্স
const x = (x, y) => { return x * y };
আইই১১ বা আরও পুরানীর সংস্করণগুলি অর্ডার ফাংশনকে সমর্থন করে না。
- পূর্ববর্তী পৃষ্ঠা জেএস অবজেক্ট রেফারেন্স
- পরবর্তী পৃষ্ঠা জেএস ফাংশন পারামিটার