تفاوت بین «( ) => { }» و «( ) => ( )» توابع پیکان در JS با 10 مثال

تفاوت بین ( ) => { }
و ( ) => ( )
عملکردهای پیکان در جاوا اسکریپت با 10 مثال واقعی
برای خواندن کامل این وبلاگ با مخزن GitHub کلیک کنید
توابع پیکان یک ویژگی محبوب در جاوا اسکریپت هستند که با ES6 معرفی شده اند و نحوه نوشتن توابع را ساده می کنند. آنها در دو نحو اصلی آمده اند:
-
بدنه بلوک:
( ) => { }
-
بدن مختصر:
( ) => ( )
درک تفاوت بین این دو نحو بسیار مهم است زیرا آنها در رفتار، خوانایی و موارد استفاده متفاوت هستند. بیایید به جزئیات بپردازیم.
تفاوت های کلیدی بین ( ) => { }
و ( ) => ( )
1. بدنه بلوک (( ) => { }
)
- این نحو از پرانتزهای فرفری استفاده می کند
{}
برای محصور کردن بدنه عملکرد. - صریحاً مستلزم الف
return
بیانیه اگر شما نیاز به برگرداندن یک مقدار دارید. - مناسب برای منطق چند خطی یا زمانی که چندین عملیات مورد نیاز است.
2. بدن مختصر (( ) => ( )
)
- این نحو مستقیماً یک عبارت را بدون پرانتزهای فرفری برمی گرداند.
- نیازی به صریح نیست
return
بیانیه - ایده آل برای محاسبات تک خطی یا بازده مستقیم.
نحو و مثال ها
مثال بدنه بلوک:
const add = (a, b) => {
return a + b; // Explicit return
};
console.log(add(2, 3)); // Output: 5
مثال مختصر بدن:
const add = (a, b) => a + b; // Implicit return
console.log(add(2, 3)); // Output: 5
تفاوت های کلیدی با مثال ها
در اینجا 10 مثال دقیق وجود دارد که تفاوت ها را نشان می دهد:
1. رفتار بازگشتی
const greet = (name) => {
return `Hello, ${name}!`;
};
console.log(greet("Alice")); // Output: Hello, Alice!
const greet = (name) => `Hello, ${name}!`;
console.log(greet("Alice")); // Output: Hello, Alice!
2. منطق چند خطی
const calculateArea = (length, width) => {
const area = length * width;
return area;
};
console.log(calculateArea(5, 10)); // Output: 50
// Not suitable for multiline logic
const calculateArea = (length, width) => length * width;
console.log(calculateArea(5, 10)); // Output: 50
3. بازگشت شی
const getUser = () => {
return { name: "Alice", age: 25 };
};
console.log(getUser()); // Output: { name: "Alice", age: 25 }
const getUser = () => ({ name: "Alice", age: 25 });
console.log(getUser()); // Output: { name: "Alice", age: 25 }
4. بدون بازگشت صریح
const square = (x) => {
x * x; // No return
};
console.log(square(4)); // Output: undefined
const square = (x) => x * x;
console.log(square(4)); // Output: 16
5. عوارض جانبی
const logMessage = (message) => {
console.log(message);
};
logMessage("Hello!"); // Output: Hello!
// Not suitable for side effects
6. توابع زنجیر زنی
const double = (x) => x * 2;
const addTen = (x) => x + 10;
console.log(addTen(double(5))); // Output: 20
const double = (x) => {
return x * 2;
};
const addTen = (x) => {
return x + 10;
};
console.log(addTen(double(5))); // Output: 20
7. عملکرد پیکان به عنوان پاسخ به تماس
[1, 2, 3].map((x) => x * 2); // Output: [2, 4, 6]
[1, 2, 3].map((x) => {
return x * 2;
}); // Output: [2, 4, 6]
8. استفاده با اپراتورهای سه تایی
const isEven = (num) => (num % 2 === 0 ? "Even" : "Odd");
console.log(isEven(3)); // Output: Odd
const isEven = (num) => {
return num % 2 === 0 ? "Even" : "Odd";
};
console.log(isEven(3)); // Output: Odd
9. آرایه های برگشتی
const getNumbers = () => [1, 2, 3];
console.log(getNumbers()); // Output: [1, 2, 3]
const getNumbers = () => {
return [1, 2, 3];
};
console.log(getNumbers()); // Output: [1, 2, 3]
10. React Components Functional
const Hello = () => <h1>Hello, World!</h1>;
const Hello = () => {
return <h1>Hello, World!</h1>;
};
موارد استفاده
بدنه بلوک ( ) => { }
- مناسب برای منطق پیچیده
- زمانی مفید است که صریح باشد
return
خوانایی را بهبود می بخشد. - برای عملکردهایی با عوارض جانبی مانند ترجیح داده می شود
console.log
.
بدن مختصر ( ) => ( )
- ایده آل برای عملکردهای یک خطی.
- عالی برای محاسبات کوتاه و تماس های درونی.
- خوانایی عبارات ساده را افزایش می دهد.
خلاصه
ویژگی |
( ) => { } (بدن بلوک) |
( ) => ( ) (بدن مختصر) |
---|---|---|
نحو |
{ } با return
|
() بدون return
|
خوانایی | برای منطق پیچیده بهتر است | پاک کننده برای بازگشت ساده |
بیانیه بازگشت | به صراحت مورد نیاز است | ضمنی |
منطق چند خطی | پشتیبانی می شود | مناسب نیست |
عوارض جانبی | به راحتی قابل رسیدگی است | کمتر استفاده می شود |
توابع تک خطی | پرمخاطب | ایده آل |
درک این تفاوتهای ظریف به شما امکان میدهد تا دستور تابع فلش را بسته به مورد خاص خود انتخاب کنید. هر دو نحو قدرتمند هستند و دانستن زمان استفاده از هر یک کد جاوا اسکریپت شما را کارآمدتر و خواناتر می کند.