تعریف ثابت ها در جاوااسکریپت – const
در جاوااسکریپت از const برای تعریف ثابت ها استفاده میشود. ثابت ها در برنامه نویسی مشابه با متغیرها برای نگه داری مقادیر به کار میروند. با این تفاوت که ثابت ها قابل انتساب مجدد نیستند.
بیشتر بخوانید: ثابت یا Constant در برنامه نویسی چیست؟
تعریف ثابت یا Constant در جاوااسکریپت
مشابه با متغیرها برای استفاده از ثابت ها در جاوااسکریپت لازم است ابتدا آنها را تعریف کنید. در جاوااسکریپت از const برای این منظور استفاده میکنیم. مثال زیر نحوه تعریف یک ثابت به نام MY_DELAY و چگونگی تعیین مقدار برای آن را نمایش میدهد:
const MY_DELAY = 5;
در مثال فوق، عدد 5 به عنوان مقدار برای ثابت MY_DELAY مشخص شده است.
همانطور که گفتیم در جاوااسکریپت ثابت هایی که با const تعریف میشوند قابل انتساب مجدد نیستند. به این معنا که نمیتوانید با کمک عملگر انتساب، مقدار جدیدی به یک ثابت تخصیص بدهید. بنابراین خط دوم در کد زیر منجر به بروز خطا میشود:
const MY_DELAY = 5;
MY_DELAY = 10;
چند نکته تکمیلی در مورد const در JavaScript
ثابت هایی که با کمک const تعریف میشوند باید هنگام تعریف، مقداردهی شوند. بنابراین کد زیر نادرست است (حتی با وجود اینکه در خط دوم مقداری به ثابت منتسب شده است):
const MY_DELAY;
MY_DELAY = 5;
با تعریف یک ثابت، در واقع ارجاعی ثابت به یک مقدار ایجاد میشود. این به معنای آن نیست که لزوما مقدار یک ثابت، تغییرناپذیر است. برای مثال اگر یک آرایه یا آبجکت را به عنوان مقدار یک ثابت مشخص کنید میتوانید عناصر آرایه یا ویژگی های آبجکت را تغییر دهید. با این موضوع در ادامه همین مطلب بیشتر آشنا میشوید.
اگر لازم نیست مقدار جدیدی به یک متغیر در قلمرو آن منتسب شود استفاده از const به جای let توصیه میشود. این کار از تغییر اشتباه مقدار موردنظر جلوگیری میکند و به خوانایی و درک بهتر کد کمک میکند.
const در بسیاری از موارد مشابه با let است. بنابراین بسیاری از ویژگیهای متغیرهایی که با let تعریف میشوند در مورد ثابت هایی که با const تعریف میشود نیز صادق است:
- ثابتی که با const تعریف میشود به صورت محلی دارای قلمرو بلاک فعلی است.
- پس از تعریف یک ثابت با const نمیتوانید تعریف دیگری (از جمله متغیر یا ثابت)، هم نام با آن در همان قلمرو تعریف کنید.
- باید تعریف ثابت با const پیش از استفاده از آن باشد.
- تعریف ثابت با const باعث ایجاد یک ویژگی برای this نمیشود.
برای آشنایی بیشتر با مفهوم موارد فوق میتوانید به مقاله جزئیات let و تفاوت آن با var مراجعه کنید.
آرایه ها و آبجکت های ثابت
شما میتوانید یک آرایه را به یک ثابت منتسب کنید. در این حالت میتوانید هر زمانی اعضای آرایه را تغییر دهید یا با کمک push عضو جدیدی به آن اضافه کنید:
const ANIMALS = ["Cat", "Dog", "Lion"];
ANIMALS[0] = "Horse";
ANIMALS.push("Sheep");
در عین حال نمیتوانید یک آرایه جدید به ثابت منتسب کنید. بنابراین دستور دوم در کد زیر منجر به بروز خطا میشود:
const ANIMALS = ["Cat", "Dog", "Lion"];
ANIMALS = ["Horse", "Sheep", "Chicken"];
همچنین میتوانید یک آبجکت را به ثابت منتسب کنید. در این حالت هم میتوانید ویژگی (یا Property) های آبجکت را تغییر دهید:
const ANIMAL = {type:"Horse", class:"Mammal"};
ANIMAL.type = "Dog";
اما نمیتوانید مجددا به آن آبجکتی را منتسب کنید. بنابراین دستور دوم در کد زیر منجر به بروز خطا میشود:
const ANIMAL = {type:"Horse", class:"Mammal"};
ANIMAL = {type:"Dog", class:"Mammal"};
بازگشت به فهرست مجموعه آموزشی JavaScript