ثابت آرایه (Array Const)
اینجا درباره «ثابت آرایه (Array Const)» حرف می زنیم. «ثابت (Const)» یعنی «مرجع ثابت»؛ یعنی اسم آرایه عوض نشود. اما همچنان می توانی داخلش را تغییر بدهی. مثل دفترچه ای که اسمش ثابت است، ولی صفحاتش را می نویسی و پاک می کنی.
چرا const برای آرایه؟
در ES6، کلمه «const» آمد. با «const» آرایه می سازیم تا اسم آرایه دوباره نسبت داده نشود.
const cars = ["Saab", "Volvo", "BMW"];
نکته: «کلمه کلیدی (Keyword)» یعنی واژه ای رزرو شده برای دستور زبان جاوااسکریپت.
انتساب دوباره ممنوع
با «const» نمی توانی کل آرایه را دوباره نسبت بدهی. این خطا می دهد.
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];
اما اعضا قابل تغییرند
«مرجع ثابت» است، نه «محتوا». پس می توانی عضو عوض کنی یا عضو جدید اضافه کنی.
const cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Toyota";
cars.push("Audi");
باید هنگام اعلان مقداردهی شود
متغیر (Variable) با «const» باید همان لحظه مقدار بگیرد. بدون مقدار، خطای نحوی می شود.
const cars;
cars = ["Saab", "Volvo", "BMW"];
اما با «var» می توانی بعداً مقدار بدهی؛ حتی قبل از اعلان هم استفاده می شود (هوئیستینگ).
cars = ["Saab", "Volvo", "BMW"];
var cars;
هشدار: روی «هوئیستینگ (Hoisting)» حساب باز نکن. کدت را خوانا و ایمن بنویس.
محدوده بلوک (Block Scope)
«بلوک (Block)» یعنی کدی داخل { } . const داخل بلوک با بیرون متفاوت است.
const cars = ["Saab", "Volvo", "BMW"];
{
const cars = ["Toyota", "Volvo", "BMW"];
}
اما «var» بلوک گرا نیست و مقدار بیرون را می پوشاند.
var cars = ["Saab", "Volvo", "BMW"];
{
var cars = ["Toyota", "Volvo", "BMW"];
}
بازاعلان و قانون ها
بازاعلان (Redeclare) یعنی دوباره همان نام را اعلان کنی. با «var» آزاد است، با «const» ممنوع است (در همان محدوده).
var cars = ["Volvo", "BMW"];
var cars = ["Toyota", "BMW"];
cars = ["Volvo", "Saab"];
نکته: اگر «const» لازم داری ولی می خواهی نسخه جدید بسازی، از متدهای امن مثل toSpliced() استفاده کن و نتیجه را در متغیری تازه بگذار.
قدم های تمرینی
- با «const» یک آرایه ساده بساز.
- یکی از اعضا را تغییر بده.
- یک عضو تازه با
push()اضافه کن. - سعی کن کل آرایه را دوباره نسبت بدهی و خطا را ببین.
مسیرهای پیشنهادی
بعد از «ثابت آرایه»، سر بزن به مرجع آرایه و تکرارهای آرایه تا تصویر کامل شود.
جمع بندی سریع
- const یعنی مرجع آرایه ثابت است.
- اعضا را می توانی تغییر دهی.
- انتساب دوباره آرایه ممنوع است.
- const حتماً باید همان لحظه مقدار بگیرد.
- const بلوک گراست؛ var نیست.