تسلط بر توابع در جاوا اسکریپت – انجمن DEV

Summarize this content to 400 words in Persian Lang
روز پنجم: تسلط بر توابع در جاوا اسکریپت
تاریخ: 12 دسامبر 2024
به روز پنجم سفر یادگیری جاوا اسکریپت خود خوش آمدید! امروز، یکی از اساسی ترین و قدرتمندترین جنبه های جاوا اسکریپت را بررسی خواهیم کرد.توابع. توابع به ما این امکان را می دهند که منطق را محصور کنیم، قابلیت استفاده مجدد را ارتقا دهیم و کد را به طور موثر سازماندهی کنیم. در پایان این مقاله، درک کاملی از نحوه تعریف، فراخوانی و استفاده از توابع، همراه با درک محدوده و بسته شدن آنها خواهید داشت.
1. تابع چیست؟
تابع یک بلوک کد قابل استفاده مجدد است که برای انجام یک کار خاص طراحی شده است. توابع به شما کمک می کند از کدهای تکراری جلوگیری کنید و برنامه های شما را تمیزتر و کارآمدتر می کند.
نحو:
function functionName(parameters) {
// Function body
return value; // Optional
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مثال:
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet(“Arjun”)); // Output: Hello, Arjun!
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
2. تعریف و فراخوانی توابع
اعلامیه عملکرد
توابع با استفاده از function کلمه کلیدی
مثال:
function add(a, b) {
return a + b;
}
console.log(add(3, 4)); // Output: 7
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
فراخوانی تابع
فراخوانی یک تابع کد آن را اجرا می کند.
مثال:
function sayHello() {
console.log(“Hello, world!”);
}
sayHello(); // Output: Hello, world!
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
3. عبارات تابع
یک عبارت تابع یک تابع را به یک متغیر اختصاص می دهد. این اجازه می دهد تا با توابع مانند هر متغیر دیگری رفتار شود.
مثال:
const multiply = function (x, y) {
return x * y;
};
console.log(multiply(5, 6)); // Output: 30
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
4. توابع فلش
توابع پیکان یک نحو مختصر برای نوشتن توابع ارائه می دهند. آنها به ویژه در فراخوانی و تعاریف عملکرد کوتاهتر مفید هستند.
نحو:
const functionName = (parameters) => {
// Function body
};
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مثال:
const divide = (a, b) => a / b;
console.log(divide(10, 2)); // Output: 5
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اگر تابع فقط یک پارامتر یا یک عبارت بازگشتی دارد، می توانید پرانتز و را حذف کنید return کلمه کلیدی
مثال:
const square = x => x * x;
console.log(square(4)); // Output: 16
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
5. دامنه در جاوا اسکریپت
دامنه تعیین می کند که کجا یک متغیر در کد شما قابل دسترسی است.
دامنه جهانی
متغیری که خارج از هر تابع یا بلوکی اعلام شده است، به صورت سراسری دارای دامنه است. در هر نقطه از اسکریپت قابل دسترسی است.
مثال:
let globalVar = “I am global”;
function showGlobalVar() {
console.log(globalVar);
}
showGlobalVar(); // Output: I am global
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
محدوده محلی
متغیرهای اعلام شده در داخل یک تابع به صورت محلی در محدوده آن تابع قرار می گیرند.
مثال:
function showLocalVar() {
let localVar = “I am local”;
console.log(localVar);
}
showLocalVar(); // Output: I am local
// console.log(localVar); // Error: localVar is not defined
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
Block Scope
با let و const، متغیرها به بلوکی که در آن اعلان شده اند محدوده می شوند.
مثال:
if (true) {
let blockScoped = “Block scope!”;
console.log(blockScoped); // Output: Block scope!
}
// console.log(blockScoped); // Error: blockScoped is not defined
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
6. بسته شدن
الف بسته شدن تابعی است که متغیرها را حتی پس از اتمام اجرای تابع بیرونی از محدوده خود به خاطر می آورد.
مثال:
function outerFunction() {
let count = 0;
return function innerFunction() {
count++;
return count;
};
}
const counter = outerFunction();
console.log(counter()); // Output: 1
console.log(counter()); // Output: 2
console.log(counter()); // Output: 3
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اینجا، innerFunction “به یاد می آورد” count متغیر حتی بعد از outerFunction اجرا کرده است.
7. نمونه های دنیای واقعی
مثال 1: تبدیل دما
function celsiusToFahrenheit(celsius) {
return celsius * 9/5 + 32;
}
console.log(celsiusToFahrenheit(30)); // Output: 86
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مثال 2: استفاده از بسته برای پیشخوان
function createCounter() {
let count = 0;
return {
increment: () => ++count,
decrement: () => –count,
};
}
const counter = createCounter();
console.log(counter.increment()); // Output: 1
console.log(counter.decrement()); // Output: 0
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مثال 3: توابع پیکان در آرایه ها
const numbers = [1, 2, 3, 4];
const squares = numbers.map(num => num * num);
console.log(squares); // Output: [1, 4, 9, 16]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
8. خوراکی های کلیدی
توابع: منطق را محصور کنید و قابلیت استفاده مجدد را ارتقا دهید.
انواع توابع: اعلان ها، عبارات و توابع پیکان.
دامنه: برای مدیریت بهتر متغیرها، دامنه جهانی، محلی و بلوک را درک کنید.
بسته شدن: از بستهها برای ساختارهای کد قدرتمند و کارآمد در حافظه استفاده کنید.
برای روز پنجم تمرین کنید
تابعی بنویسید که فاکتوریل یک عدد را محاسبه کند.
یک شمارنده مبتنی بر بسته شدن ایجاد کنید که هم بتواند خود را افزایش دهد و هم بازنشانی کند.
با استفاده از توابع فلش، فهرستی از دماها را از درجه سانتیگراد به فارنهایت تبدیل کنید.
مراحل بعدی
در روز 6، بررسی می کنیم آرایه ها و اشیاء، دو ساختار داده ضروری در جاوا اسکریپت. منتظر 13 دسامبر 2024 باشید!
روز پنجم: تسلط بر توابع در جاوا اسکریپت
تاریخ: 12 دسامبر 2024
به روز پنجم سفر یادگیری جاوا اسکریپت خود خوش آمدید! امروز، یکی از اساسی ترین و قدرتمندترین جنبه های جاوا اسکریپت را بررسی خواهیم کرد.توابع. توابع به ما این امکان را می دهند که منطق را محصور کنیم، قابلیت استفاده مجدد را ارتقا دهیم و کد را به طور موثر سازماندهی کنیم. در پایان این مقاله، درک کاملی از نحوه تعریف، فراخوانی و استفاده از توابع، همراه با درک محدوده و بسته شدن آنها خواهید داشت.
1. تابع چیست؟
تابع یک بلوک کد قابل استفاده مجدد است که برای انجام یک کار خاص طراحی شده است. توابع به شما کمک می کند از کدهای تکراری جلوگیری کنید و برنامه های شما را تمیزتر و کارآمدتر می کند.
نحو:
function functionName(parameters) {
// Function body
return value; // Optional
}
مثال:
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet("Arjun")); // Output: Hello, Arjun!
2. تعریف و فراخوانی توابع
اعلامیه عملکرد
توابع با استفاده از function
کلمه کلیدی
مثال:
function add(a, b) {
return a + b;
}
console.log(add(3, 4)); // Output: 7
فراخوانی تابع
فراخوانی یک تابع کد آن را اجرا می کند.
مثال:
function sayHello() {
console.log("Hello, world!");
}
sayHello(); // Output: Hello, world!
3. عبارات تابع
یک عبارت تابع یک تابع را به یک متغیر اختصاص می دهد. این اجازه می دهد تا با توابع مانند هر متغیر دیگری رفتار شود.
مثال:
const multiply = function (x, y) {
return x * y;
};
console.log(multiply(5, 6)); // Output: 30
4. توابع فلش
توابع پیکان یک نحو مختصر برای نوشتن توابع ارائه می دهند. آنها به ویژه در فراخوانی و تعاریف عملکرد کوتاهتر مفید هستند.
نحو:
const functionName = (parameters) => {
// Function body
};
مثال:
const divide = (a, b) => a / b;
console.log(divide(10, 2)); // Output: 5
اگر تابع فقط یک پارامتر یا یک عبارت بازگشتی دارد، می توانید پرانتز و را حذف کنید return
کلمه کلیدی
مثال:
const square = x => x * x;
console.log(square(4)); // Output: 16
5. دامنه در جاوا اسکریپت
دامنه تعیین می کند که کجا یک متغیر در کد شما قابل دسترسی است.
دامنه جهانی
متغیری که خارج از هر تابع یا بلوکی اعلام شده است، به صورت سراسری دارای دامنه است. در هر نقطه از اسکریپت قابل دسترسی است.
مثال:
let globalVar = "I am global";
function showGlobalVar() {
console.log(globalVar);
}
showGlobalVar(); // Output: I am global
محدوده محلی
متغیرهای اعلام شده در داخل یک تابع به صورت محلی در محدوده آن تابع قرار می گیرند.
مثال:
function showLocalVar() {
let localVar = "I am local";
console.log(localVar);
}
showLocalVar(); // Output: I am local
// console.log(localVar); // Error: localVar is not defined
Block Scope
با let
و const
، متغیرها به بلوکی که در آن اعلان شده اند محدوده می شوند.
مثال:
if (true) {
let blockScoped = "Block scope!";
console.log(blockScoped); // Output: Block scope!
}
// console.log(blockScoped); // Error: blockScoped is not defined
6. بسته شدن
الف بسته شدن تابعی است که متغیرها را حتی پس از اتمام اجرای تابع بیرونی از محدوده خود به خاطر می آورد.
مثال:
function outerFunction() {
let count = 0;
return function innerFunction() {
count++;
return count;
};
}
const counter = outerFunction();
console.log(counter()); // Output: 1
console.log(counter()); // Output: 2
console.log(counter()); // Output: 3
اینجا، innerFunction
“به یاد می آورد” count
متغیر حتی بعد از outerFunction
اجرا کرده است.
7. نمونه های دنیای واقعی
مثال 1: تبدیل دما
function celsiusToFahrenheit(celsius) {
return celsius * 9/5 + 32;
}
console.log(celsiusToFahrenheit(30)); // Output: 86
مثال 2: استفاده از بسته برای پیشخوان
function createCounter() {
let count = 0;
return {
increment: () => ++count,
decrement: () => --count,
};
}
const counter = createCounter();
console.log(counter.increment()); // Output: 1
console.log(counter.decrement()); // Output: 0
مثال 3: توابع پیکان در آرایه ها
const numbers = [1, 2, 3, 4];
const squares = numbers.map(num => num * num);
console.log(squares); // Output: [1, 4, 9, 16]
8. خوراکی های کلیدی
- توابع: منطق را محصور کنید و قابلیت استفاده مجدد را ارتقا دهید.
- انواع توابع: اعلان ها، عبارات و توابع پیکان.
- دامنه: برای مدیریت بهتر متغیرها، دامنه جهانی، محلی و بلوک را درک کنید.
- بسته شدن: از بستهها برای ساختارهای کد قدرتمند و کارآمد در حافظه استفاده کنید.
برای روز پنجم تمرین کنید
- تابعی بنویسید که فاکتوریل یک عدد را محاسبه کند.
- یک شمارنده مبتنی بر بسته شدن ایجاد کنید که هم بتواند خود را افزایش دهد و هم بازنشانی کند.
- با استفاده از توابع فلش، فهرستی از دماها را از درجه سانتیگراد به فارنهایت تبدیل کنید.
مراحل بعدی
در روز 6، بررسی می کنیم آرایه ها و اشیاء، دو ساختار داده ضروری در جاوا اسکریپت. منتظر 13 دسامبر 2024 باشید!