Const di JavaScript
- Pagina precedente Let JS
- Pagina successiva Operatori JS
ECMAScript 2015
ECMAScript 2015 ha introdotto due nuove parole chiave JavaScript importanti:let
e const
.
attraverso const
Le variabili definite sono let
Le variabili definite sono simili, ma non possono essere riassegnate:
Esempio
const PI = 3.141592653589793; PI = 3.14; //会出错 PI = PI + 10; //也会出错
di scoping block
indi scoping blockall'interno const
La variabile dichiarata è let
Le variabili sono simili.
In questo esempio, x è dichiarato nel blocco, diverso da x dichiarato al di fuori del blocco:
Esempio
var x = 10; // In questo caso, x è 10 { const x = 6; // In questo caso, x è 6 } // In questo caso, x è 10
Puoi vedere nel capitolo precedente Let di JavaScript Ho imparato di più sulla scoping block in mediazione.
Al momento della dichiarazione
JavaScript const
Le variabili devono essere assegnate un valore al momento della dichiarazione:
Non corretto
const PI; PI = 3.14159265359;
Corretto
const PI = 3.14159265359;
Non è una costante vera e propria
Parola chiave const
Ha un certo inganno.
Non definisce il valore costante. Definisce una referenza costante al valore.
Quindi, non possiamo modificare il valore originale della costante, ma possiamo modificare le proprietà dell'oggetto costante.
Valore originale
Se assegniamo un valore originale a una costante, non possiamo modificare il valore originale:
Esempio
const PI = 3.141592653589793; PI = 3.14; //会出错 PI = PI + 10; //也会出错
L'oggetto costante può essere modificato
Puoi modificare le proprietà dell'oggetto costante:
Esempio
// Puoi creare oggetti const: const car = {type:"porsche", model:"911", color:"Black"}; // Puoi modificare le proprietà: car.color = "White"; // 您可以添加属性: car.owner = "Bill";
但是您无法重新为常量对象赋值:
Esempio
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // ERROR
常量数组可以更改
您可以更改常量数组的元素:
Esempio
// 您可以创建常量数组: const cars = ["Audi", "BMW", "porsche"]; // 您可以更改元素: cars[0] = "Honda"; // 您可以添加元素: cars.push("Volvo");
但是您无法重新为常量数组赋值:
Esempio
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
变量:
Esempio
var x = 2; // 允许 var x = 3; // 允许 x = 4; // 允许
在同一作用域或块中,不允许将已有的 var
或 let
变量重新声明或重新赋值给 const
:
Esempio
var x = 2; // 允许 const x = 2; // 不允许 { let x = 2; // 允许 const x = 2; // 不允许 }
在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:
Esempio
const x = 2; // È permesso const x = 3; // 不允许 x = 3; // 不允许 var x = 3; // 不允许 let x = 3; // 不允许 { const x = 2; // È permesso const x = 3; // Non è permesso x = 3; // Non è permesso var x = 3; // Non è permesso let x = 3; // Non è permesso }
Rideclamare in un altro contesto o blocco const
È permesso:
Esempio
const x = 2; // È permesso { const x = 3; // È permesso } { const x = 4; // È permesso }
Sollevamento
attraverso var
Le variabili definite vengonoSollevamentoall'inizio. Se non si conosce cosa sia il sollevamento (Hoisting), si prega di studiare questa sezione.
È possibile utilizzare una variabile var prima della sua dichiarazione:
Esempio
carName = "Volvo"; // È possibile utilizzare carName in questo punto var carName;
attraverso const
Le variabili definite non vengono sollevate all'inizio.
const
Le variabili non possono essere utilizzate prima della loro dichiarazione:
Esempio
carName = "Volvo"; // Non è possibile utilizzare carName in questo punto const carName = "Volvo";
- Pagina precedente Let JS
- Pagina successiva Operatori JS