مقادیر بازگشتی تابع در جاوا اسکریپت
مقادیر بازگشتی تابع در جاوا اسکریپت در ادامه سری مقالات آموزش جاوا اسکریپت، این آخرین مطلبی است که در مورد تابعها مطالعه میکنید. برخی تابعها پس از اجرا شدن، مقدار مشخصی را بازگشت نمیدهند؛
مقادیر بازگشتی تابع در جاوا اسکریپت
در ادامه سری مقالات آموزش جاوا اسکریپت، این آخرین مطلبی است که در مورد تابعها مطالعه میکنید. برخی تابعها پس از اجرا شدن، مقدار مشخصی را بازگشت نمیدهند؛ اما تابعهای دیگر چنین کاری را انجام میدهند و درک این مقادیر بازگشتی و شیوه استفاده از آنها در کد اهمیت دارد. همچنین باید با روش واداشتن تابعهای سفارشی به بازگشت دادن مقادیر مفید آشنا شویم. همه این موضوعات در این مقاله مطرح شدهاند.
فهرست مطالب این نوشته
پیشنیازها
مقادیر بازگشتی چه هستند؟
یادگیری عملی
سخن پایانی
پیشنیازها
سواد مقدماتی رایانه
درکی ابتدایی از HTML و CSS
آشنایی اولیه با جاوا اسکریپت به خصوص «تابعها به عنوان بلوکهای کد با قابلیت استفاده مجدد»
هدف از این مقاله درک مقادیر بازگشتی تابع و شیوه استفاده از آنها است.
با کلیک روی لینک زیر میتوانید قسمت قبلی این مجموعه مطلب را مطالعه کنید:
تابع سفارشی در جاوا اسکریپت — راهنمای عملی
مقادیر بازگشتی چه هستند؟
مقادیر بازگشتی همان طور که از نامشان برمیآید، مقادیری هستند که یک تابع پس از به پایان رسیدن کار خود بازگشت میدهد. شما قطعاً تا کنون با مقادیر بازگشتی کار کردهاید؛ اما شاید به طور صریح در مورد آنها اندیشه نکرده باشید. به قطعه کد مثال آشنای زیر توجه کنید:
var myText = ‘I am a string’;
var newString = myText.replace(‘string’, ‘sausage’);
console.log(newString);
// the replace() string function takes a string,
// replaces one substring with another, and returns
// a new string with the replacement made
در نخستین مطلب راجع به تابع در این سری مطالب آموزشی این مثال را مشاهده کردیم. تابع ()replace را روی رشته myText فراخوانی و دو پارامتر به آن ارسال میکنیم که یکی زیررشتهای است که باید پیدا شود و دیگری زیررشتهای است که جایگزین پارامتر اول میشود. زمانی که اجرای این تابع پایان یابد، یک مقدار بازگشت میدهد که یک رشته جدید است که عملیات جایگزینی روی آن صورت گرفته است. در کد فوق این مقدار بازگشتی را به صورت مقدار متغیر ذخیره میکنیم.
برخی تابعها مقادیر بازگشتی این چنین ندارند، برای نمونه تابع ()displayMessage که در مقاله قبلی با عنوان «تابع سفارشی در جاوا اسکریپت — راهنمای کاربردی» معرفی کردیم، هیچ مقدار بازگشتی در پایان اجرای تابع نداشت. آن تابع صرفاً یک کادر پیام را روی صفحه نمایش میداد.
به طور کلی یک مقدار بازگشتی در مواردی استفاده میشود که تابع، یک مرحله میانی در نوعی محاسبات باشد. در این حالت میخواهیم به یک نتیجه نهایی دست یابیم که شامل برخی مقادیر است. این مقادیر باید از سوی یک تابع محاسبه شوند که به نوبه خود بازگشت مییابند تا در مراحل بعدی محاسبات مورد استفاده قرار گیرند.
استفاده از مقادیر بازگشتی در تابع سفارشی
برای بازگشت یک مقدار از تابع سفارشی باید از کلیدواژه return استفاده کنیم. این کلیدواژه را در مثال ترسیم دایرهها در مقاله «حلقهها در جاوا اسکریپت — راهنمای کاربردی» ملاحظه کردیم. در این مثال که کد آن در زیر ارائه شده است، تابع ()draw ده دایره تصادفی را روی یک
function draw() {
ctx.clearRect(0,0,WIDTH,HEIGHT);
for (var i = 0; i < 100; i++) {
ctx.beginPath();
ctx.fillStyle = ‘rgba(255,0,0,0.5)’;
ctx.arc(random(WIDTH), random(HEIGHT), random(50), 0, 2 * Math.PI);
ctx.fill();
}
}
در هر بار تکرار حلقه، سه فراخوانی به تابع ()random صورت میگیرد تا سه مقدار تصادفی به ترتیب برای مختصات x، مختصات y و شعاع دایره بازگشت یابد. تابع ()random یک پارامتر میگیرد که عددی کامل است و یک عدد تصادفی کامل بین 0 و آن عدد بازگشت میدهد. ظاهر آن چنین است:
function randomNumber(number) {
return Math.floor(Math.random()*number);
}
این کد را میتوان به صورت زیر نوشت:
function randomNumber(number) {
var result = Math.floor(Math.random()number); return result; } اما نوشتن نسخه اولیه سریعتر و فشردهتر است. هر بار که تابع فراخوانی میشود، نتیجه محاسبه (Math.floor(Math.random()number را بازگشت میدهیم. این مقدار بازگشتی در نقطهای که تابع فراخوانی میشود، مورد استفاده قرار میگیرد و سپس اجرای کد ادامه مییابد. از این رو برای نمونه اگر کد زیر را اجرا کنیم:
ctx.arc(random(WIDTH)، random(HEIGHT)، random(50)، 0، 2 * Math.PI);
فراخوانیهای ()random مقادیری به ترتیب به صورت 500، 200 و 35 بازگشت میدهند. در این حالت این خط کد را میتوان به صورت زیر تصور کرد:
ctx.arc(500، 200، 35، 0، 2 * Math.PI);
فراخوانیهای تابع موجود، ابتدا اجرا میشوند و مقادیر بازگشتی پیش از آن که خود خط کد اجرا شود، به جای فراخوانیهای تابعها جایگزین میشوند.
یادگیری عملی
در این بخش قصد داریم تابعهای سفارشی خود را که شامل مقادیر بازگشتی هستند بنویسیم. قبل از هر چیز کد زیر را در یک فایل به نام function-library.html درج و روی سیستم خود ذخیره نمایید.
Function library example
این یک صفحه ساده HTML است که شامل فیلد و یک پاراگراف است. همچنین یک عنصر
اسکریپت های جالب در اسکریپت من