const
کلمه کلیدی را در معرفی شد ES6 (2015) .
متغیرهای تعریف شده const
را نمی توان مجدداً اعلام کرد.
متغیرهای تعریف شده با const
مجدداً قابل انتساب نیستند.
متغیرهای تعریف شده با const
Block Scope هستند.
امکان واگذاری مجدد وجود ندارد
یک const
متغیر نمی تواند دوباره تعیین شود:
مثال
const PI = 3.141592653589793; PI = 3.14; // This will give an error PI = PI + 10; // This will also give an error
باید اختصاص داده شود
const
متغیرهای جاوا اسکریپت باید هنگام تعیین مقدار تعیین شوند:
درست
const PI = 3.14159265359;
غلط
const PI; PI = 3.14159265359;
چه موقع باید از ساختار JavaScript استفاده کرد؟
به عنوان یک قاعده کلی ، همیشه یک متغیر را با const
آن اعلام کنید مگر اینکه بدانید که مقدار تغییر خواهد کرد.
همیشه const
وقتی اعلام می کنید استفاده کنید:
- یک آرایه جدید
- یک شی جدید
- عملکرد جدید
- یک RegExp جدید
اشیا Constant و آرایه های ثابت
کلمه کلیدی const
کمی گمراه کننده است.
یک مقدار ثابت را تعریف نمی کند. این یک اشاره ثابت به یک مقدار را تعریف می کند.
به همین دلیل شما نمی توانید:
- یک مقدار ثابت را دوباره تعیین کنید
- یک آرایه ثابت را دوباره تعیین کنید
- یک شی ثابت را دوباره تعیین کنید
ولی شما میتوانید:
- یک آرایه ثابت را تغییر دهید
- یک شی ثابت را تغییر دهید
آرایه های ثابت
می توانید عناصر آرایه ثابت را تغییر دهید:
مثال
// You can create a constant array: const cars = ["Saab", "Volvo", "BMW"]; // You can change an element: cars[0] = "Toyota"; // You can add an element: cars.push("Audi");
اما شما نمی توانید آرایه را دوباره تعیین کنید:
مثال
const cars = ["Saab", "Volvo", "BMW"]; cars = ["Toyota", "Volvo", "Audi"]; // ERROR
اشیا Constant ثابت
می توانید خصوصیات یک شی ثابت را تغییر دهید:
مثال
// You can create a const object: const car = {type:"Fiat", model:"500", color:"white"}; // You can change a property: car.color = "red"; // You can add a property: car.owner = "Johnson";
اما شما نمی توانید شی object را دوباره تعیین تکلیف کنید:
مثال
const car = {type:"Fiat", model:"500", color:"white"}; car = {type:"Volvo", model:"EX60", color:"red"}; // ERROR
پشتیبانی مرورگر
const
کلمه کلیدی در اینترنت اکسپلورر 10 و یا قبل از پشتیبانی نمی شود.
جدول زیر اولین نسخه های مرورگر را با پشتیبانی کامل از const
کلمه کلیدی تعریف می کند:
محدوده محدوده
اعلام متغیر با const
همان چیزی است let
که به Block Scope می رسد .
x اعلام شده در بلوک ، در این مثال ، همان x اعلام شده در خارج از بلوک نیست:
مثال
const x = 10; // Here x is 10 { const x = 2; // Here x is 2 } // Here x is 10
اعلام مجدد
اعلان مجدد var
متغیر JavaScript در هر کجای برنامه مجاز است:
مثال
var x = 2; // Allowed var x = 3; // Allowed x = 4; // Allowed
اعلان مجدد موجود var
یا let
متغیر به const
همان محدوده مجاز نیست:
مثال
var x = 2; // Allowed const x = 2; // Not allowed { let x = 2; // Allowed const x = 2; // Not allowed } { const x = 2; // Allowed const x = 2; // Not allowed }
اختصاص const
مجدد متغیر موجود ، در همان محدوده ، مجاز نیست:
مثال
const x = 2; // Allowed x = 2; // Not allowed var x = 2; // Not allowed let x = 2; // Not allowed const x = 2; // Not allowed { const x = 2; // Allowed x = 2; // Not allowed var x = 2; // Not allowed let x = 2; // Not allowed const x = 2; // Not allowed }
اعلان مجدد متغیر با const
یک دامنه دیگر یا یک بلوک دیگر مجاز است:
مثال
const x = 2; // Allowed { const x = 3; // Allowed } { const x = 4; // Allowed }
ساخت بالابرنده
متغیرهایی که با var
آنها تعریف می شوند به بالا برداشته می شوند و در هر زمان می توانند مقداردهی اولیه شوند.
معنی: شما می توانید از متغیر قبل از اعلام استفاده کنید:
مثال
این خوب است:
carName = "Volvo"; var carName;
متغیرهایی که با const
آنها تعریف می شوند نیز به بالا برده می شوند ، اما مقداردهی اولیه نمی شوند.
معنی: استفاده از یک const
متغیر قبل از اعلام منجر به یک ReferenceError
: