مبانی JavaScript
·
۱۰ دقیقه مطالعه
توابع و دامنه
تعریف تابع
function greet(name) {
return "سلام " + name;
}
greet("آرنا");
Arrow Function (مدرن)
const greet = (name) => "سلام " + name;
const double = x => x * 2; // یک پارامتر، یک خط
const add = (a, b) => a + b;
پارامتر پیشفرض و بقیه
function xp(base, bonus = 0) { return base + bonus; }
function sum(...nums) { // rest: همهٔ آرگومانها
return nums.reduce((a, b) => a + b, 0);
}
دامنه (Scope)
let global = 1;
function test() {
let local = 2; // فقط داخل تابع
}
// console.log(local); ← خطا
let/const دامنهٔ بلوکی دارند (داخل { }).
Closure — مفهوم مهم
یک تابع میتواند متغیرهای تابع بیرونی را «بهخاطر بسپارد»:
function counter() {
let count = 0;
return () => ++count;
}
const next = counter();
next(); next(); // 1, 2
Closure پایهٔ خیلی از الگوهای پیشرفتهٔ JS است.