জেভাস্ক্রিপ্ট ফাংশন ডিফাইনিশন

কোর্স সুপারিশ: 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 };

আপনার নিজেই প্রয়াস করুন

আইই১১ বা আরও পুরানীর সংস্করণগুলি অর্ডার ফাংশনকে সমর্থন করে না。