Const (Const)
«const» یعنی مقدارِ ثابت. «ثابت (Constant)» مقداری است که بعداً عوض نمی شود. مثل نمره نهایی ثبت شده؛ بعد از اعلام، دیگر تغییر نمی کند. همچنین «const» محدوده بلوک دارد و امن تر کدنویسی می کنی.
عدم تغییر مقدار (Cannot be Reassigned)
با const بعد از تعریف، مقدار را نمی توانی دوباره نسبت دهی.
const PI = 3.141592653589793;
// PI = 3.14; // خطا
// PI = PI + 10; // خطا
الزام مقداردهی هنگام اعلان
متغیرِ const باید همان لحظه مقدار بگیرد؛ بعداً نمی شود.
const PI = 3.14159265359;
// نادرست: بعداً مقداردهی کرده ای
// const PI;
// PI = 3.14159265359;
آرایه ثابت (Constant Arrays)
مرجع ثابت است؛ اما اعضای آرایه را می توانی تغییر دهی.
const cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Toyota";
cars.push("Audi");
اما جایگزینی کل آرایه ممنوع است.
const cars = ["Saab", "Volvo", "BMW"];
// cars = ["Toyota", "Volvo", "Audi"]; // خطا
شیء ثابت (Constant Objects)
می توانی ویژگی های شیء را عوض کنی؛ مرجع ثابت می ماند.
const car = { type: "Fiat", model: "500", color: "white" };
car.color = "red";
car.owner = "Johnson";
اما جایگزینی کل شیء ممنوع است.
const car = { type: "Fiat", model: "500", color: "white" };
// car = { type: "Volvo", model: "EX60", color: "red" }; // خطا
محدوده بلوک (Block Scope)
مثل let، هر بلوک const خودش را دارد و جداست.
const x = 10;
{
const x = 2;
}
// بیرون بلوک، x همان 10 است
هوئیستینگ و خطای ReferenceError
var قبل از اعلان هم کار می کند؛ چون مقداردهی تنبلی دارد. اما const پیش از اعلان خطا می دهد.
نمونه var با هوئیستینگ
carName = "Volvo";
var carName;
نمونه const و خطا
// alert(carName); // ReferenceError
const carName = "Volvo";
نکته: برای مقایسه، صفحه let و variables را هم ببین. جستجوی «ثابت const» معمولاً به همین صفحه می رسد.
جمع بندی سریع
- const مقدارِ ثابت می سازد؛ مرجع عوض نمی شود.
- آرایه و شیء قابل تغییرند؛ نه قابل جایگزینی.
- const محدوده بلوک دارد؛ امن تر است.
- قبل از اعلان، استفاده نکن؛ خطا می دهد.