JavaScript

JavaScript — کلمه ی کلیدی const در جاوااسکریپت (JS Const)

آخرین بروزرسانی: 1404/07/21

کلمه ی کلیدی 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

ScopeRedeclareReassignHoisted
varخیربلهبلهبله
letبلهخیربلهخیر
constبلهخیرخیرخیر

برای رفتارهای مربوط به حوزه دید و hoisting، فصل Hoisting را ببینید. همچنین مقایسه با let مفید است.

چه زمانی از const استفاده کنیم؟

  • اگر مقدار نباید دوباره اختصاص یابد، از const استفاده کنید.
  • برای تعریف آرایه ها، اشیاء، توابع یا RegExp جدید مناسب است.

در ادامه چند لینک مفید برای مطالعه بیشتر آورده شده است.

منابع خارجی: MDN: const و W3Schools: const.

درون سایت: مقایسه با let و متغیرها.