Const في JavaScript
التوصية بالدراسة:
ECMAScript 2015let
ES2015 أضاف كلمتين مفتاحيتين مهمتين جديدتين في JavaScript: const
و
من خلال const
، let
المتغيرات المُحددة في
مثال
const PI = 3.141592653589793; PI = 3.14; // قد يحدث خطأ PI = PI + 10; // قد يحدث خطأ
في
المتغير مشابه، لكن لا يمكن إعادة تعيينه:فينطاق الكائنات const
في let
المتغيرات المُعلنة مع
المتغيرات مشابهة.
مثال
في هذا المثال، x مُعلن في الكائن، ويتفاوت عن x المُعلن خارج الكائن: // هنا، x يساوي 6 { var x = 10; const x = 6; } // هنا، x يساوي 6
// هنا، x يساوي 10 Let في JavaScript تعلمت الكثير عن نطاق الكائنات في الفصل السابق.
عند الإعلان
JavaScript const
يجب أن يتم تعيين المتغير عند إعلانه:
غير صحيح
const PI; PI = 3.14159265359;
صحيح
const PI = 3.14159265359;
ليس ثابتًا حقيقيًا
الكلمات المفتاحية const
لديه تأثير خاطئ معين.
لم يحدد قيمة ثابتة. يحدد استدلال القيمة الثابتة.
لذلك، لا يمكننا تغيير القيمة الأصلية الثابتة، لكن يمكننا تغيير خصائص عنصر الثابت.
القيمة الأصلية
إذا قمنا بتعيين قيمة أصلية للاصطلاح الثابت، لا يمكننا تغيير القيمة الأصلية:
مثال
const PI = 3.141592653589793; PI = 3.14; // قد يحدث خطأ PI = PI + 10; // قد يحدث خطأ
يمكن تغيير عنصر الثابت:
يمكنك تغيير خصائص عنصر الثابت:
مثال
// يمكنك إنشاء عنصر ثابت: const car = {type:"porsche", model:"911", color:"Black"}; // يمكنك تغيير الخاصية: car.color = "White"; // 您可以添加属性: car.owner = "Bill";
但是您无法重新为常量对象赋值:
مثال
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // ERROR
常量数组可以更改
您可以更改常量数组的元素:
مثال
// 您可以创建常量数组: const cars = ["Audi", "BMW", "porsche"]; // 您可以更改元素: cars[0] = "Honda"; // 您可以添加元素: cars.push("Volvo");
但是您无法重新为常量数组赋值:
مثال
const cars = ["Audi", "BMW", "porsche"]; cars = ["Honda", "Toyota", "Volvo"]; // ERROR
浏览器支持
Internet Explorer 10 或更早版本不支持 const
关键词。
下表定义了第一个完全支持 const 关键词的浏览器版本:
Chrome 49 | IE / Edge 11 | Firefox 36 | Safari 10 | Opera 36 |
2016 年 3 月 | 2013 年 10 月 | 2015 年 2 月 | 2016 年 9 月 | 2016 年 3 月 |
重新声明
在程序中的任何位置都允许重新声明 JavaScript var
变量:
مثال
var x = 2; // 允许 var x = 3; // 允许 x = 4; // 允许
在同一作用域或块中,不允许将已有的 var
或 let
变量重新声明或重新赋值给 const
:
مثال
var x = 2; // 允许 const x = 2; // 不允许 { let x = 2; // 允许 const x = 2; // 不允许 }
在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:
مثال
const x = 2; // مسموح const x = 3; // 不允许 x = 3; // 不允许 var x = 3; // 不允许 let x = 3; // 不允许 { const x = 2; // مسموح const x = 3; // غير مسموح x = 3; // غير مسموح var x = 3; // غير مسموح let x = 3; // غير مسموح }
إعادة تسمية في نطاق آخر أو في قطعة const
هذا مسموح:
مثال
const x = 2; // مسموح { const x = 3; // مسموح } { const x = 4; // مسموح }
Hoisting
من خلال var
المتغيرات المحددة سيتمHoistingإلى القمة. إذا لم تكن تعرف ما هو Hoisting، فمن الأفضل أن تتعلم هذا الفصل.
يمكنك استخدام المتغير var قبل إعلانه:
مثال
carName = "Volvo"; // يمكنك استخدام carName هنا var carName;
من خلال const
المتغيرات المحددة لن تُرفع إلى القمة.
const
لا يمكن استخدام المتغير قبل إعلانه:
مثال
carName = "Volvo"; // لا يمكنك استخدام carName هنا const carName = "Volvo";