JavaScript-Const
ECMAScript 2015
ES2015 tuotti kaksi tärkeää JavaScript-uusintaa:let
ja const
.
Kautta const
määritelty let
Määritellyt muuttujat ovat
Esimerkki
const PI = 3.141592653589793; PI = 3.14; // Tämä aiheuttaa virheen PI = PI + 10; // Tämä aiheuttaa virheen
lohko-aloitustilassa
lohdossalohko-aloitustilassasisällä käytettävissä const
Määritellyt muuttujat ovat let
Muuttujat ovat samanlaisia.
Tässä esimerkissä x on määritelty lohkossa, eri tavalla kuin lohkon ulkopuolella määritelty x:
Esimerkki
var x = 10; // Tässä x on 10 { const x = 6; // Tässä x on 6 } // Tässä x on 10
Edellisessä luvussa JavaScript-Let Lisätietoja lohko-aloitustilasta.
Määrittäessä
JavaScript const
Muuttujan on annettava arvo määrittäessään:
Väärin
const PI; PI = 3.14159265359;
Oikein
const PI = 3.14159265359;
Ei todellinen muuttuja
Avainsana const
Se on hieman harhaanjohtava.
Se ei määrittele muuttujan arvoa. Se määrittelee arvon muuttujan.
Siksi emme voi muuttaa muuttujan alkuperäistä arvoa, mutta voimme muuttaa muuttujan ominaisuuksia.
Alkuperäinen arvo
Jos asetamme alkuperäisen arvon muuttujaan, emme voi muuttaa alkuperäistä arvoa:
Esimerkki
const PI = 3.141592653589793; PI = 3.14; // Tämä aiheuttaa virheen PI = PI + 10; // Tämä aiheuttaa virheen
Muuttujan arvo voi muuttua
Voit muuttaa muuttujan arvon ominaisuuksia:
Esimerkki
// Voit luoda const-objektin: const car = {type:"porsche", model:"911", color:"Black"}; // Voit muuttaa ominaisuuksia: car.color = "White"; // 您可以添加属性: car.owner = "Bill";
但是您无法重新为常量对象赋值:
Esimerkki
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // ERROR
常量数组可以更改
您可以更改常量数组的元素:
Esimerkki
// 您可以创建常量数组: const cars = ["Audi", "BMW", "porsche"]; // 您可以更改元素: cars[0] = "Honda"; // 您可以添加元素: cars.push("Volvo");
但是您无法重新为常量数组赋值:
Esimerkki
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
变量:
Esimerkki
var x = 2; // 允许 var x = 3; // 允许 x = 4; // 允许
在同一作用域或块中,不允许将已有的 var
或 let
变量重新声明或重新赋值给 const
:
Esimerkki
var x = 2; // 允许 const x = 2; // 不允许 { let x = 2; // 允许 const x = 2; // 不允许 }
在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:
Esimerkki
const x = 2; // Sallittu const x = 3; // 不允许 x = 3; // 不允许 var x = 3; // 不允许 let x = 3; // 不允许 { const x = 2; // Sallittu const x = 3; // Ei sallittu x = 3; // Ei sallittu var x = 3; // Ei sallittu let x = 3; // Ei sallittu }
Toisessa toimialueessa tai lohkossa uudelleenmäärittää const
On sallittu:
Esimerkki
const x = 2; // Sallittu { const x = 3; // Sallittu } { const x = 4; // Sallittu }
Nouseminen ylös
Kautta var
Määritellyt muuttujatNouseminen ylösylös. Jos et tunne, mitä nouseminen ylös (Hoisting) on, lue tämä luku.
Voit käyttää var-muuttujaa ennen sen määrittämistä:
Esimerkki
carName = "Volvo"; // Käyttöä carName:sta on sallittu tässä kohdassa var carName;
Kautta const
Määritellyt muuttujat eivät nouse ylös.
const
Muuttujaa ei voi käyttää ennen sen määrittämistä:
Esimerkki
carName = "Volvo"; // Käyttöä carName:sta ei ole sallittu tässä kohdassa const carName = "Volvo";