javascriptconstتعریف ثابت در جاوااسکریپت
const در جاوااسکریپت چه چیزی را ثابت نگه میدارد؟ با مثال و خروجی، تفاوت انتساب دوباره با تغییر ویژگی شیء و محدودیت Object.freeze را بشناسید.
مفهوم به زبان ساده
const یک اتصال ثابت بین نام متغیر و مقدار میسازد. پس از مقداردهی اولیه نمیتوانید همان نام را به مقدار دیگری متصل کنید. تعریف const بدون مقدار اولیه هم مجاز نیست.
در مورد #object و #array، ثابت بودن این اتصال به معنی ثابت بودن محتوای داده نیست. در مثال، نام user همچنان به همان شیء اشاره میکند، ولی ویژگی name درون آن تغییر میکند.
اگر تغییرناپذیری سطح اول ویژگیهای یک شیء را لازم دارید، Object.freeze ابزار جداگانهای است؛ آن هم بهتنهایی اشیای تو در تو را منجمد نمیکند.
کجا به کار میآید؟
- نامگذاری مقدارهایی که دوباره به آنها انتساب نمیدهید
- تعریف مرجع یک آرایه، شیء تنظیمات یا تابع
از تعریف تا یک مثال واقعی
const user = { name: "Sara" };
user.name = "Mina";
console.log(user.name);
Mina
این مثال چطور کار میکند؟
user با یک شیء دارای ویژگی name مقداردهی میشود.
user.name = "Mina" محتوای همان شیء را ویرایش میکند.
خروجی Mina است؛ خود اتصال user عوض نشده است.
اشتباه رایج
نوشتن user = { name: "Mina" } با const خطا میدهد؛ اما user.name = "Mina" مجاز است. این دو عملیات یکسان نیستند.
این را به خاطر بسپارید
const جلوی انتساب دوباره را میگیرد، نه همهٔ تغییرهای درون داده را.