# डिक्लेरेशन बनाम एक्सप्रेशन — JavaScript Fundamentals: Syntax से Async तक

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

> Functions को declarations या expressions के रूप में define करें और समझें कि 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 में दिखता है और डिबगिंग आसान बनाता है।
