یاد بگیرید. بسازید.

شروع JavaScript؛ تابع، خروجی و آزمون

اولین تابع JavaScript را بنویسید، ورودی و return را بفهمید و نتیجه را با کنسول و آزمون داخل صفحه بررسی کنید.

تصویر مفهومی شروع JavaScript؛ تابع، خروجی و آزمون

یک تابع، یک کار روشن

تابع، بخشی از برنامه است که می‌تواند ورودی بگیرد و خروجی برگرداند. برای شروع، تابعی می‌سازیم که دو عدد را جمع کند. این مثال کوچک است، اما چند تفاوت مهم را نشان می‌دهد: نام پارامترها، مقدار ورودی، خروجی و نمایش در کنسول.

پیش از اجرا، نتیجه sum(2,3) را حدس بزنید. بعد کد را اجرا کنید. حالا یکی از ورودی‌ها را صفر یا منفی کنید. تغییر یک ورودی در هر نوبت کمک می‌کند رفتار تابع را بفهمید، نه اینکه فقط خروجی نمونه را به خاطر بسپارید.

return با console.log فرق دارد

تابع، ورودی و آزمون

تابع جمع را کامل کنید. آزمون‌ها عدد مثبت، صفر و عدد منفی را بررسی می‌کنند.

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

console.log("2 + 3 =", sum(2, 3));
یک راهنمایی می‌خواهم

خروجی را با return برگردانید.

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

تابع را با صفر و عدد منفی هم امتحان کنید.

return مقدار را به کسی که تابع را صدا زده برمی‌گرداند. console.log مقدار را برای مشاهده می‌نویسد. اگر فقط نتیجه را چاپ کنید، کد دیگری که به خروجی تابع نیاز دارد ممکن است undefined دریافت کند. برای دیدن تفاوت، return را موقتاً با console.log عوض کنید و آزمون‌ها را اجرا کنید.

چرا فقط یک مثال کافی نیست؟

آزمون‌های این مثال، عدد مثبت، صفر و عدد منفی را بررسی می‌کنند. این‌ها چند نمونه از رفتار مورد انتظارند. هنوز درباره ورودی متنی یا مقدار خالی تصمیمی نگرفته‌ایم. قبل از اضافه‌کردن تبدیل نوع یا خطا، قرارداد تابع را مشخص کنید: فقط عدد می‌گیرد یا باید متن عددی را هم بپذیرد؟

یک آزمون خوب باید وقتی رفتار خراب می‌شود شکست بخورد. شرطی که همیشه true است، کیفیت را نمی‌سنجد. یک‌بار عمداً جمع را به تفریق تغییر دهید و ببینید کدام آزمون خطا را می‌گیرد. سپس تغییر را برگردانید.

همان مسئله با Python

زبان دیگری می‌تواند همان ایده را با نوشتار متفاوت بیان کند. نمونه Python را فقط برای مقایسه مفهوم تابع ببینید؛ لازم نیست هم‌زمان دو مسیر یادگیری را شروع کنید. در Python تورفتگی، بخشی از ساختار برنامه است. اولین اجرای این مثال، مفسر WebAssembly را دریافت می‌کند.

همان مسئله با Python

مفسر Python فقط با انتخاب اجرا، از طریق WebAssembly بارگذاری می‌شود.

main.pypython
def total(a, b):
    return a + b

print(total(2, 3))
یک راهنمایی می‌خواهم

بدنه تابع باید تورفتگی یکسان داشته باشد.

قدم بعدی

تابعی بسازید که قیمت نهایی را از قیمت و درصد تخفیف محاسبه کند. ابتدا مثال‌ها را روی کاغذ حل کنید، بعد کد بنویسید. درباره درصد منفی، درصد بیشتر از صد و ورودی خالی تصمیم بگیرید. این تصمیم‌ها از کوتاه‌کردن کد مهم‌ترند.