آموزش کلمه کلیدی const در جاوا اسکریپت
کلمه کلیدی const در اکما اسکریپت 6 در سال 2015 معرفی شده است.
متغیرهای تعریف شده با کلمه کلیدی const نمی توانند بازتعریف شوند.
متغیرهای تعریف شده با const نمی توانند دوباره انتساب داده شوند.
متغیرهای تعریف شده با const دارای میدان دید بلوکی هستند.
نمی تواند دوباره انتساب داده شود
یک متغیر const نمی تواند دوباره انتساب داده شود:
مثال شماره 1
const PI = 3.141592653589793;
PI = 3.14; // این یک خطا ایجاد می کند
PI = PI + 10; // این نیز یک خطا ایجاد می کند
امتحان کنیدباید انتساب داده شود
متغیرهای const در جاوا اسکریپت، وقتی که داریم آنها را تعریف می کنیم، باید مقداری را به آنها انتساب دهیم:
مثال شماره 2
این کار صحیح است:
const PI = 3.14159265359;
مثال شماره 3
این کار صحیح نیست:
const PI;
PI = 3.14159265359;
چه زمانی باید از const در جاوا اسکریپت استفاده کنیم؟
اگر یک مقدار دارید که می دانید آن مقدار نباید تغییر کند، همواره یک متغیر با const تعریف کنید و آن مقدار را در درونش قرار دهید. وقتی که می خواهید موارد زیر را تعریف کنید، می توانید یک متغیر const را تعریف کنید:
1. ایجاد یک آرایه جدید
2. ایجاد یک آبجکت جدید
3. ایجاد یک تابع جدید
4. ایجاد یک عبارت منظم(RegExp)
آبجکت ها و آرایه های ثابت(constant)
کلمه کلیدی const کمی گمراه کننده است. این کلمه کلیدی یک مقدار ثابت(constant) را تعریف نمی کند. بلکه یک ارجاع ثابت(constant reference) را به یک مقدار تعریف می کند. به همین دلیل:
1. ما نمی توانیم یک مقدار ثابت را دوباره انتساب دهیم.
2. ما نمی توانیم یک آرایه ثابت را انتساب دهیم.
3. ما نمی توانیم یک آبجکت ثابت را انتساب دهیم.
اما می توانیم:
1. می توانیم عناصر یک آرایه ثابت را تغییر دهیم.
2. می توانیم پروپرتی های یک آبجکت ثابت را تغییر دهیم.
آرایه های ثابت(constant)
ما می توانیم عناصر یک آرایه ثابت را تغییر دهیم:
مثال شماره 4
// ما می توانیم یک آرایه ثابت تعریف کنیم
const cars = ["Saab", "Volvo", "BMW"];
// ما می توانیم یک عنصر را تغییر دهیم
cars[0] = "Toyota";
// ما می توانیم یک عنصر را اضافه کنیم
cars.push("Audi");
امتحان کنیداما نمی توانیم این آرایه را دوباره انتساب دهیم:
مثال شماره 5
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
امتحان کنیدآبجکت های ثابت در جاوا اسکریپت
ما می توانیم پروپرتی های یک آبجکت ثابت(constant object) را تغییر دهیم:
مثال شماره 6
// ما می توانیم یک آبجکت ثابت ایجاد کنیم
const car = {type:"Fiat", model:"500", color:"white"};
// ما می توانیم یک پروپرتی را تغییر دهیم:
car.color = "red";
// ما می توانیم یک پروپرتی را اضافه کنیم
car.owner = "Johnson";
امتحان کنیداما نمی توانیم آبجکت را دوباره انتساب دهیم:
مثال شماره 7
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; // ERROR
امتحان کنیدپشتیبانی مرورگرها
کلمه کلیدی const در اینترنت اکسپلورر 10 و نسخه های قبلی آن پشتیبانی نمی شود. در جدول زیر، اولین ورژن های مرورگرها که کاملاً از کلمه کلیدی const پشتیبانی می کنند، مشخص شده است:
![]() |
![]() |
![]() |
![]() |
![]() |
| Chrome 49 | IE 11 / Edge | Firefox 36 | Opera 36 | Safari 10 |
| Mar, 2016 | Oct, 2013 | Feb, 2015 | Mar, 2016 | Sep, 2016 |
میدان دید بلوکی(Block Scope)
تعریف یک متغیر با استفاده از کلمه کلیدی const ، وقتی که در میدان دید بلوکی(Block Scope) قرار می گیرد، مشابه با کلمه کلیدی let است. در مثال زیر، x که در داخل بلوک قرار دارد، مشابه با x که در بیرون از بلوک قرار دارد نیست:
مثال شماره 8
const x = 10;
// برابر با 10 است x در اینجا
{
const x = 2;
// برابر با 2 است x در اینجا
}
// برابر با 10 است x در اینجا
امتحان کنیددر فصل میدان دید در جاوا اسکریپت، در مورد میدان دید بلوکی، بیشتر توضیح خواهیم داد.
باز تعریف کردن
باز تعریف کردن یک متغیر جاوا اسکریپت با استفاده از کلمه کلیدی var در هرجایی از یک برنامه مجاز است:
مثال شماره 9
var x = 2; // مجاز است
var x = 3; // مجاز است
x = 4; // مجاز است
باز تعریف کردن یک متغیر موجود که از کلمه کلیدی var یا let استفاده می کند،به صورت کلمه کلیدی const در یک میدان دید مشابه، مجاز نیست:
مثال شماره 10
var x = 2; // مجاز است
const x = 2; // مجاز نیست
{
let x = 2; // مجاز است
const x = 2; // مجاز نیست
}
{
const x = 2; // مجاز است
const x = 2; // مجاز نیست
}
دوباره انتساب دادن یک متغیر const در یک میدان دید مشابه، مجاز نیست:
مثال شماره 11
const x = 2; // مجاز است
x = 2; // مجاز نیست
var x = 2; // مجاز نیست
let x = 2; // مجاز نیست
const x = 2; // مجاز نیست
{
const x = 2; // مجاز است
x = 2; // مجاز نیست
var x = 2; // مجاز نیست
let x = 2; // مجاز نیست
const x = 2; // مجاز نیست
}
باز تعریف کردن یک متغیر با استفاده از کلمه کلیدی const، در یک میدان دید دیگر یا در یک بلوک دیگر مجاز است:
مثال شماره 12
const x = 2; // مجاز است
{
const x = 3; // مجاز است
}
{
const x = 4; // مجاز است
}
در بالا قرار گرفتن متغیرها(Hoisting)
متغیرهای تعریف شده با استفاده از کلمه کلیدی var در بالای کدها قرار می گیرند و می توانند در هر زمانی، مقدار دهی اولیه شوند. این یعنی اینکه ما می توانیم از این متغیرها قبل از اینکه تعریف شوند، استفاده کنیم:
اگر می خواهید در مورد بالا قرار گرفتن متغیرها در جاوا اسکریپت اطلاعات بیشتری بیاموزید، به این مقاله مراجعه کنید. متغیرهای تعریف شده با استفاده از کلمه کلیدی const نیز در بالا قرار می گیرند اما مقدار دهی اولیه نمی شوند. یعنی اینکه استفاده از یک متغیر const، قبل از اینکه تعریف شود، باعث ایجاد خطای ReferenceError می شود:
- بازدید: 408





1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.