# javascript function (fn) কিভাবে এবং কতভাবে ডিক্লার করা যায়

আজকে আমরা দেখব javascript function (fn) কিভাবে এবং কতভাবে ডিক্লার করা যায় । প্রথমে আমরা চির পরিচিত নিয়মে ফাংশন ডিক্লার করা দেখব ।

তার আগে ফাংশন সম্পর্কে কিছু বেসিক তথ্য জেনে নেই । ফাংশন এঁর মূলত ২ টা পার্ট থেকে

1. define a function
    
2. invoke a function --&gt; ইনভোক হচ্ছে কোণ একটা ফাংশনকে কল করা
    

```javascript
// define a function 
function functionName() {
 console.log("this is a function ") 
}
// invoking function 
functionName()
```

```javascript
const functionName = () => {
 console.log("i am a function");
};
functionName()
```

**এখন আমরা কিছু চিরাচায়িত নিয়ম বাদে ফাংশন কল করা দেখব**

1. function constructor ব্যাবহার করে
    
    ```javascript
    const fn = new Function(
     "name",
     "age",
     `console.log(name,age)
      return 'my name is ' + name + " and my age is " + age`
    );
    
    console.log(fn("rashedul", 18));
    ```
    
    ১ নাম্বারঃ এখানে আমাদের যত আর্গুমেন্ট সব কমা দিয়ে দিয়ে নিত্যে হবে এবং এঁর সর্ব শেষ আর্গুমেন্ট হবে ফাংশনের বডি ।
    
    তাহলে আর্গুমেন্ট গুলো কমা দিয়ে দিয়ে নিতে হয় এবং লাস্ট আর্গুমেন্ট ই হবে ফাংশনের বডি ।
    
2. ডাইনামিক অপারেশন করা । যেমন আমাদের একটা array of object থাকবে যার মধ্যে আমাদের ফাংশনের লজিক (args, params, body) লেখা থাকবে ।
    
    ```javascript
    let operations = [
     { args: [10, 20], params: ["a", "b"], body: `console.log(a+b)` },
     { args: [10, 20], params: ["a", "b"], body: `console.log(a-b)` },
     { args: [10, 20], params: ["a", "b"], body: `console.log(a*b)` },
     { args: [10, 20], params: ["a", "b"], body: `console.log(a%b)` },
    ];
    
    operations.forEach((operation) => {
     const fn = new Function(...operation.params, operation.body);
     fn(...operation.args);
    });
    
    ---------------- আউটপুটঃ --------------- 
    // 30
    // -10
    // 200
    // 10
    ```
