برنامه نویسی

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

تفاوت بین ( ) => { } و ( ) => ( ) عملکردهای پیکان در جاوا اسکریپت با 10 مثال واقعی

برای خواندن کامل این وبلاگ با مخزن GitHub کلیک کنید

توابع پیکان یک ویژگی محبوب در جاوا اسکریپت هستند که با ES6 معرفی شده اند و نحوه نوشتن توابع را ساده می کنند. آنها در دو نحو اصلی آمده اند:

  1. بدنه بلوک: ( ) => { }
  2. بدن مختصر: ( ) => ( )

درک تفاوت بین این دو نحو بسیار مهم است زیرا آنها در رفتار، خوانایی و موارد استفاده متفاوت هستند. بیایید به جزئیات بپردازیم.


تفاوت های کلیدی بین ( ) => { } و ( ) => ( )

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>;
  };
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


موارد استفاده

بدنه بلوک ( ) => { }

  1. مناسب برای منطق پیچیده
  2. زمانی مفید است که صریح باشد return خوانایی را بهبود می بخشد.
  3. برای عملکردهایی با عوارض جانبی مانند ترجیح داده می شود console.log.

بدن مختصر ( ) => ( )

  1. ایده آل برای عملکردهای یک خطی.
  2. عالی برای محاسبات کوتاه و تماس های درونی.
  3. خوانایی عبارات ساده را افزایش می دهد.

خلاصه

ویژگی ( ) => { } (بدن بلوک) ( ) => ( ) (بدن مختصر)
نحو { } با return () بدون return
خوانایی برای منطق پیچیده بهتر است پاک کننده برای بازگشت ساده
بیانیه بازگشت به صراحت مورد نیاز است ضمنی
منطق چند خطی پشتیبانی می شود مناسب نیست
عوارض جانبی به راحتی قابل رسیدگی است کمتر استفاده می شود
توابع تک خطی پرمخاطب ایده آل

درک این تفاوت‌های ظریف به شما امکان می‌دهد تا دستور تابع فلش را بسته به مورد خاص خود انتخاب کنید. هر دو نحو قدرتمند هستند و دانستن زمان استفاده از هر یک کد جاوا اسکریپت شما را کارآمدتر و خواناتر می کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا