# डिक्लेरेशन बनाम एक्सप्रेशन — जावास्क्रिप्ट

Source: https://www.geekswithgeeks.com/hi/javascript/js-function-basics

> फ़ंक्शन बनाने के दो तरीके, और hoisting में अंतर।

## फ़ंक्शन डिक्लेरेशन

Hoisted होता है — कोड में परिभाषा से पहले भी बुलाया जा सकता है।

```js
function add(a, b) {
  return a + b;
}
console.log(add(2, 3));  // 5
```

## फ़ंक्शन एक्सप्रेशन

किसी वेरिएबल को असाइन होता है — उसी तरह hoisted **नहीं** होता; असाइनमेंट लाइन चलने के बाद ही उपयोग हो सकता है।

```js
const multiply = function (a, b) {
  return a * b;
};
console.log(multiply(2, 3));  // 6
```

## नामित बनाम बेनाम

फ़ंक्शन एक्सप्रेशन को नाम दें (`const f = function greet() {}`) — यह stack trace में दिखता है और डिबगिंग आसान बनाता है।
