کلمه ی کلیدی const در جاوااسکریپت
کلمه ی کلیدی const (const) برای تعریف یک ارجاع ثابت به مقدار در جاوااسکریپت (JavaScript) استفاده می شود. const در جاوااسکریپت نمی تواند دوباره مقداردهی شود، اما می تواند برای آرایه ها و اشیاء، عناصر یا خصوصیات را تغییر دهد.
خصوصیات اصلی const
متغیرهای تعریف شده با const
باید هنگام تعریف مقدار بگیرند. سپس نمی توان آن ها را دوباره اختصاص داد یا Redeclare کرد.
const PI = 3.141592653589793;
// PI = 3.14; // خطا: نمی توان مقدار را تغییر داد
Block Scope و const
همچون let
، const
دارای Block Scope است. متغیرهای 선언 شده در یک بلوک خارج از آن قابل دسترسی نیستند.
const x = 10;
{
const x = 2; // این x محلی به بلوک است
}
// اینجا x هنوز برابر 10 است
آرایه ها و اشیاء ثابت (Constant References)
const
یک ارجاع ثابت را تعریف می کند، نه مقدار غیرقابل تغییر. بنابراین می توان عناصر آرایه یا خصوصیات شیء را تغییر داد.
const cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Toyota"; // مجاز
cars.push("Audi"); // مجاز
const car = {type: "Fiat", model: "500"};
car.color = "red"; // مجاز
هشدار: اما نمی توان کل آرایه یا شیء را دوباره اختصاص داد.
const cars = ["Saab", "Volvo"];
cars = ["Toyota", "Audi"]; // خطا
Hoisting و const
متغیرهای تعریف شده با const
به بالای بلوک hoist می شوند، اما مقداردهی اولیه نمی شوند. استفاده قبل از تعریف منجر به ReferenceError
می شود.
// این باعث ReferenceError می شود
// alert(carName);
// const carName = "Volvo";
تفاوت var، let و const
Scope | Redeclare | Reassign | Hoisted | |
var | خیر | بله | بله | بله |
let | بله | خیر | بله | خیر |
const | بله | خیر | خیر | خیر |
برای رفتارهای مربوط به حوزه دید و hoisting، فصل Hoisting را ببینید. همچنین مقایسه با let مفید است.
چه زمانی از const استفاده کنیم؟
- اگر مقدار نباید دوباره اختصاص یابد، از
const
استفاده کنید. - برای تعریف آرایه ها، اشیاء، توابع یا RegExp جدید مناسب است.
در ادامه چند لینک مفید برای مطالعه بیشتر آورده شده است.
منابع خارجی: MDN: const و W3Schools: const.
درون سایت: مقایسه با let و متغیرها.