JavaScript Const
تم const
تقديم الكلمة الأساسية في
ES6 (2015) .
const
لا يمكن إعادة تعريف المتغيرات المعرفة بـ .
const
لا يمكن إعادة تعيين المتغيرات المعرفة بـ .
المتغيرات المعرفة const
بنطاق الكتلة.
لا يمكن إعادة التعيين
لا يمكن const
إعادة تعيين متغير:
مثال
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
يجب التعيين
const
يجب تعيين قيمة لمتغيرات JavaScript عندما يتم التصريح عنها:
صيح
const PI = 3.14159265359;
غير صحيح
const PI;
PI = 3.14159265359;
متى يتم استخدام JavaScript const؟
كقاعدة عامة ، أعلن دائمًا عن متغير باستخدام const
ما لم تكن تعلم أن القيمة ستتغير.
استخدم const
عندما تعلن:
- صفيف جديد
- كائن جديد
- وظيفة جديدة
- RegExp جديد
كائنات ومصفوفات ثابتة
الكلمة الرئيسية 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
كائنات ثابتة
يمكنك تغيير خصائص كائن ثابت:
مثال
// 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";
لكن لا يمكنك إعادة تعيين الكائن:
مثال
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; //
ERROR
دعم المتصفح
الكلمة الأساسية const
غير مدعومة في Internet Explorer 10 أو إصدار أقدم.
يحدد الجدول التالي إصدارات المستعرض الأولى مع دعم كامل const
للكلمة الرئيسية:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
نطاق الكتلة
إعلان متغير بـ const
يشبه let
عندما يتعلق الأمر بـ Block Scope .
إن x المُعلن في الكتلة ، في هذا المثال ، ليس هو نفسه x المُعلن خارج الكتلة:
مثال
const x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
يمكنك معرفة المزيد حول نطاق الكتلة في فصل JavaScript Scope .
إعادة التصريح
يُسمح بإعادة تعريف متغير JavaScript var
في أي مكان في البرنامج:
مثال
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;
إذا كنت تريد معرفة المزيد حول الرفع ، فقم بدراسة فصل JavaScript Hoisting .
المتغيرات المعرفة بـ const
يتم رفعها أيضًا إلى الأعلى ، لكن لم تتم تهيئتها.
المعنى: استخدام const
متغير قبل التصريح عنه ينتج عنه
ReferenceError
:
مثال
alert (carName);
const carName = "Volvo";