خطاهای جاوا اسکریپت: بازگشت نامناسب

javascript errors bad return
05 دی 1403

خطاهای جاوا اسکریپت: بازگشت نامناسب


اگه شما توسعه‌دهنده جاوا اسکریپت باشید، احتمالاً با خطاهای مختلفی مواجه شدید. یکی از این خطاها "Bad return" یا "بازگشت نامناسب" است. این خطا می‌تونه باعث مواجهه با مشکلات مختلفی در کد شما بشه. وقتی که شما سعی می‌کنید مقداری را به تابع برگشت بدید که به نوع مورد انتظار تابع نمی‌خوره، این خطا اتفاق می‌افته.


به عنوان مثال، یک تابع معمولی رو در نظر بگیرید که انتظار داره یک عدد برگرده. اگر شما یک رشته برگردونید، ممکنه به طور ناخواسته خطا ایجاد کنه. این موضوع احتمالاً به دلیل نوع‌سازی ناهمخوانی بین نوع ورودی و نوع خروجی تابع پیش میاد. جاوا اسکریپت به دلیل نوع‌گذاری دینامیکش، می‌تونه این مشکلات رو به سرعت شناسایی کنه.


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


در اینجا یک مثال ساده برای روشن‌تر شدن موضوع آورده‌ام. فرض کنید تابعی داریم به نام `sum` که دو عدد رو جمع می‌کند و باید یک عدد برگشت بدهد. خطای "Bad return" ممکن است در شرایطی پیش بیاد که شما به اشتباه یک رشته به عنوان خروجی برگردانید.


function sum(a, b) {
return a + b;
}

console.log(sum(5, 10)); // 15
console.log(sum(5, '10')); // 510 (ممکنه بخاطر نوع داده به اشتباه ترکیب بشه)

توضیح کد



function sum(a, b) {

این خط شروع یک تابع به نام `sum` را تعریف می‌کند که دو آرگومان به نام‌های `a` و `b` را می‌پذیرد.


return a + b;

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


console.log(sum(5, 10));

این خط تابع را با دو عدد واقعی صدا می‌زنه و نتیجه 15 را چاپ می‌کند.


console.log(sum(5, '10'));

این خط تابع را با یک عدد و یک رشته صدا می‌زنه و به جای 15، 510 را برمی‌گردونه که نشان‌دهنده خطای "Bad return" است.

سوالات متداول

؟

خطای 'Bad return' چیست و چگونه می‌توانم از آن جلوگیری کنم؟

؟

چگونه می‌توانم نوع داده‌های برگشتی را چک کنم؟