معرفی Function در زبان برنامهنویسی JavaScript
تابع یکی از مفاهیم کلیدی و پرکاربرد در زبان برنامهنویسی JavaScript است. توابع به شما اجازه میدهند تا بخشی از کد را که قرار است چندین بار در برنامه تکرار شود، به صورت ماژولار تعریف کنید و آن را بهطور مکرر فراخوانی کنید. این کار کدنویسی را مرتبتر، خواناتر، و قابل نگهداریتر میکند. ناگفته نماند که در مقاله “آموزش JavaScript قسمت سوم” بطور خیلی مختصر به این مفهوم کلیدی اشاره کردیم که پیشنهاد میکنیم اول مقالههای قبلی را مرور کنید.
تعریف تابع
برای تعریف یک تابع در JavaScript از کلمه کلیدی “function” استفاده میکنیم. ساختار کلی یک تابع به صورت زیر است:
function functionName(parameters) {
// کدهای اجرایی
}
در قطعه کد بالا، functionName؛ نام تابع است که توسط آن، تابع شناسایی و فراخوانی میشود. نام تابع بهتر است مختصر و مفهومی انتخاب شود چرا که اگر فردی بخواهد کد را تحلیل کند نحوه نامگذاری شما بسیار موثر خواهد بود.
parameters: پارامترهایی که تابع میپذیرد (در صورت وجود).
داخل { }، کدهایی که قرار است اجرا شوند، نوشته میشوند.
function greet() {
console.log("Hello, World!");
}
در مثال بالا، تابعی به نام greet تعریف شده است که پیامی را در کنسول نمایش میدهد.
فراخوانی تابع
تابع در JavaScript یک بلوک از کد می باشد که برای انجام یک کار به خصوص تعریف میشود. یک تابع JavaScript تنها زمانی اجرا می شود که در نقطه ای از برنامه فراخوانی شود. پس از تعریف یک تابع، برای اجرای آن، باید آن را فراخوانی کنیم:
greet(); // نتیجه: Hello, World!
توابع با پارامترها
توابع میتوانند ورودیهایی (پارامترها) داشته باشند تا بتوانند بر اساس آن ورودیها خروجی متفاوتی تولید کنند همچنین میتوان برای پارامترهای یک تابع مقدار پیشفرض تعیین کرد تا در صورت عدم ارائه مقدار، از مقدار پیشفرض استفاده شود. بهعنوان مثال به کد زیر توجه کنید.
function greet(name) {
console.log("Hello, " + name + "!");
}
greet("Ali"); // نتیجه: Hello, Ali!
در این مثال، تابع greet یک پارامتر به نام name میگیرد و سپس پیام خوشآمدگویی شخصیسازیشده را در کنسول نمایش میدهد.
توابع با مقدار بازگشتی (Return Value)
توابع میتوانند مقادیری را به عنوان خروجی بازگردانند. برای این کار از کلمه کلیدی return استفاده میشود.
function add(a, b) {
return a + b;
}
let sum = add(5, 10);
console.log(sum); // نتیجه: 15
در این مثال، تابع add دو پارامتر a و b را میگیرد و حاصل جمع آنها را برمیگرداند.
متغیر محلی (Local Variable) در تابع JavaScript
در JavaScript، متغیر محلی (Local Variable) به متغیری گفته میشود که درون یک تابع تعریف میشود و فقط در همان تابع قابل دسترسی است. این متغیرها در خارج از تابع یا در سایر بخشهای برنامه قابل دسترسی نیستند. این ویژگی باعث میشود که متغیرهای محلی در محدوده (Scope) خاص خود ایمن باشند و تداخل با سایر متغیرهای خارج از آن محدوده ایجاد نشود.
تعریف متغیر محلی
برای تعریف یک متغیر محلی، کافی است که متغیر را داخل یک تابع با استفاده از کلمات کلیدی var، let یا const تعریف کنید. این متغیرها تنها در طول اجرای تابع در دسترس هستند.
function myFunction() {
let localVar = "I am a local variable";
console.log(localVar);
}
myFunction(); // خروجی: I am a local variable
console.log(localVar); // خطا: localVar تعریف نشده است
در این مثال، متغیر localVar یک متغیر محلی است که داخل تابع myFunction تعریف شده و تنها درون این تابع قابل دسترسی است. اگر سعی کنیم این متغیر را در خارج از تابع دسترسی داشته باشیم، با خطا مواجه میشویم، زیرا localVar خارج از محدوده (Scope) تعریف خود وجود ندارد.
تفاوت متغیر محلی و سراسری
متغیر محلی: تنها در محدوده تابعی که در آن تعریف شده است در دسترس است.
متغیر سراسری (Global Variable): در هر جایی از کد برنامه و خارج از توابع نیز در دسترس است. متغیرهایی که در خارج از هر تابعی تعریف میشوند، به عنوان متغیرهای سراسری شناخته میشوند.
let globalVar = "I am a global variable";
function myFunction() {
let localVar = "I am a local variable";
console.log(localVar); // خروجی: I am a local variable
console.log(globalVar); // خروجی: I am a global variable
}
myFunction();
console.log(globalVar); // خروجی: I am a global variable
console.log(localVar); // خطا: localVar تعریف نشده است
در این مثال، globalVar یک متغیر سراسری است و در تمامی بخشهای کد قابل دسترسی است، در حالی که localVar یک متغیر محلی است و فقط درون تابع myFunction قابل استفاده است.
توابع ناشناس
گاهی اوقات نیازی به دادن نام برای توابع نداریم. در این موارد میتوانیم از توابع ناشناس استفاده کنیم. این توابع معمولاً بهعنوان آرگومان به توابع دیگر پاس داده میشوند یا به متغیری اختصاص داده میشوند.
let multiply = function(a, b) {
return a * b;
};
console.log(multiply(3, 4)); // نتیجه: 12
توابع به عنوان آرگومان
توابع در JavaScript میتوانند به عنوان ورودی به توابع دیگر منتقل شوند که به آنها توابع بازگشتی (Callback) گفته میشود. این ویژگی JavaScript را به زبانی قدرتمند برای برنامهنویسی ناهمزمان تبدیل کرده است.
function processUserInput(callback) {
let name = prompt("Enter your name:");
callback(name);
}
processUserInput(function(name) {
console.log("Hello, " + name + "!");
});
در این مثال، تابع processUserInput تابعی را به عنوان آرگومان دریافت میکند و سپس آن را فراخوانی میکند.
توابع پیکان (Arrow Functions)
در ES6 (ECMAScript 2015) نوع جدیدی از توابع به نام توابع پیکان معرفی شد که سینتکس مختصرتری دارند.
const subtract = (a, b) => a - b;
console.log(subtract(10, 4)); // نتیجه: 6
در این مثال، تابع پیکان subtract با استفاده از سینتکس مختصر تعریف شده است.
برای تمرینهای بیشتر میتوانید به مرجع آموزش آنلاین برنامهنویسی W3schools مراجعه نمایید.
ویدئوی یوتیوب
تابعها در JavaScript نقش بسیار مهمی در بهبود ساختار و کارایی کد دارند. استفاده از توابع به شما کمک میکند تا کدهای خود را ماژولارتر، قابل خواندنتر و کارآمدتر بنویسید. با تسلط بر مفاهیم مختلف توابع مانند پارامترها، مقادیر بازگشتی و انواع مختلف توابع (ناشناس و پیکان)، میتوانید از تمام ظرفیتهای JavaScript بهره ببرید.