تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ عرشیا
توابع در جاوا اسکریپت
جامعه جاوا اسکریپت ایجاد شده در ۱۸ شهریور ۱۴۰۲

سلام وقت بخیر

چه زمان هایی باید از تابعمون return بگیریم و چه زمان هایی نباید.

سلام،

پاسخ کلی اینست که، وقتی نیاز داشته باشید یک مقدار را به بیرون از تابع انتقال بدید.


منتها اینکه چه جاهایی نیاز به انتقال مقادیر دارید باید مثال‌های مختلف رو ببینید.

کاملاً بستگی به سناریو و تصمیم شما دارد که چگونه یک مسئله رو بخواید حل کنید.

برای مثال مسئله اینست، تابعی بنویسید که عدد زوج را از فرد تشخیص دهد:

  • شما میتوانید تابعی بنویسید که بعد از مشخص کردن اینکه عدد زوج است یا فرد در انتهای همان تابع از طریق alert یا console.log یا document.write یا ... همانجا چاپ کنید که عدد زوج بوده یا فرد بوده.
  • سناریو میتواند به شکل دیگر پیاده شود یعنی همان تابع را مینویسید ولی در انتها نمیخواهید آنجا اعلام شود بلکه باید زوج یا فرد بودن را در بیرون از تابع استفاده کنید و جاهای مختلفی از کد نیاز دارید، بنابراین نتیجه را return میکنید.
  • در کل دست شما باز است که چطور یک تابع را بنویسید، مهم اینست که منطق برنامه ی شما چه شرایطی را میخواهد.
  • یه وقت هایی هم پیش می‌آید که میخواهید اگر شرایطی در تابع اتفاق افتاد بقیه کدهای تابع اجرا نشوند و ادامه تابع متوقف شود، اینجا هم با استفاده از return میتوانید از تابع خارج شوید.
  • هم میتوانید با مقدار از تابع خارج شوید و هم بدون مقدار، یعنی return خالی.


::چند مثال از توضیحات بالا و تکمیل موضوع RETURN در تابع::

1. برگرداندن یک نتیجه:

وقتی میخواهید نتیجه یک تابع را به کدی که تابع را فراخوانی کرده باز گردانید، از return استفاده میکنید.

function add(a, b) {
   return a + b;
}
let sum = add(3, 4); // sum = 7

2. پایان زودهنگام تابع:

اگر بخواهید تابع را قبل از اینکه به پایان آن برسید خاتمه دهید، از return بدون پارامتر استفاده می‌کنید.

function printMessage(message) {
   if (!message) {
        return;
   }
   console.log(message);
}

3. برگرداندن یک تابع:

گاهی اوقات ممکن است بخواهید یک تابع دیگر را به عنوان نتیجه برگردانید.

function wrapper() {
   return function inner() {
        console.log("Hello from the inner function!");
   }
}
const myFunc = wrapper();
myFunc(); // Outputs: "Hello from the inner function!"

4. توابع بدون return:

همه توابع در جاوااسکریپت بصورت پیش فرض undefined برمیگردانند اگر هیچ مقدار return‌ ای تعریف نشده باشد.

function sayHello() {
   console.log("Hello!");
}
const result = sayHello(); // Outputs: "Hello!"
console.log(result); // Outputs: undefined

5. توابع سازنده یا کلاس‌ها: (در سرفصل‌های آینده آموزش داده میشود)

وقتی از توابع به عنوان توابع سازنده (constructor functions) استفاده میکنید یا با کلاس‌ها کار میکنید، بطور معمول نیازی به استفاده از return نیست، چرا که یک شیء جدید بصورت خودکار ساخته و برگردانده میشود.

function Dog(name) {
   this.name = name;
}
const myDog = new Dog("Buddy");
console.log(myDog.name); // Outputs: "Buddy"

6. توابع پیکربندی:

گاهی اوقات توابعی داریم که تنها وظیفه‌ ی تغییر دادن یک شیء یا متغیر خارجی است. در این حالت نیازی به برگرداندن چیزی نیست.

function configureObject(obj) {
   obj.configured = true;
}
let myObj = {};
configureObject(myObj);
console.log(myObj.configured); // Outputs: true

  

بطور کلی، آنچه تصمیم میگیرید در تابع خود برگردانید و یا چه زمانی از تابع خارج شوید، بستگی به نیازها و منطق برنامه‌ ی شما دارد.

بهترین پاسخ
محسن موحد ۱۸ شهریور ۱۴۰۲، ۱۴:۳۰