JavaScript Const
- Föregående sida JS Let
- Nästa sida JS-operatorer
ECMAScript 2015
ES2015 introducerade två viktiga nya nyckelord i JavaScript:let
och const
.
Genom const
Definierade variabler är let
Variabler liknar, men kan inte återfördelas:
Exempel
const PI = 3.141592653589793; PI = 3.14; // Det kommer att bli fel PI = PI + 10; // Det kommer att bli fel
blockområde
iblockområdeinuti använda const
Deklarerade variabler är let
Variabler liknar varandra.
I detta exempel är x deklarerad i blocket, annorlunda än x utanför blocket:
Exempel
var x = 10; // Här är x 10 { const x = 6; // Här är x 6 } // Här är x 10
Du kan se i föregående kapitel JavaScript Let Jag lärde mig mer om blockområde i mellanstadiet.
vid deklarerande
JavaScript const
Variabler måste tilldelas ett värde vid deklarerande:
Fel
const PI; PI = 3.14159265359;
Rätt
const PI = 3.14159265359;
Inte en sann konstant
Nyckelord const
Det är vissa missvisande.
Det definierar inte en konstant värde. Det definierar en konstant referens till värdet.
Därför kan vi inte ändra den konstanta ursprungliga värdet, men vi kan ändra egenskaperna på konstanta objektet.
Ursprungliga värde
Om vi tilldelar en ursprunglig värde till en konstant, kan vi inte ändra ursprungliga värdet:
Exempel
const PI = 3.141592653589793; PI = 3.14; // Det kommer att bli fel PI = PI + 10; // Det kommer att bli fel
Konstanta objekt kan ändras
Du kan ändra egenskaperna på en konstant objekt:
Exempel
// Du kan skapa const-objekt: const car = {type:"porsche", model:"911", color:"Black"}; // Du kan ändra egenskaper: car.color = "White"; // 您可以添加属性: car.owner = "Bill";
但是您无法重新为常量对象赋值:
Exempel
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // ERROR
常量数组可以更改
您可以更改常量数组的元素:
Exempel
// 您可以创建常量数组: const cars = ["Audi", "BMW", "porsche"]; // 您可以更改元素: cars[0] = "Honda"; // 您可以添加元素: cars.push("Volvo");
但是您无法重新为常量数组赋值:
Exempel
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
变量:
Exempel
var x = 2; // 允许 var x = 3; // 允许 x = 4; // 允许
在同一作用域或块中,不允许将已有的 var
或 let
变量重新声明或重新赋值给 const
:
Exempel
var x = 2; // 允许 const x = 2; // 不允许 { let x = 2; // 允许 const x = 2; // 不允许 }
在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:
Exempel
const x = 2; // Tillåtet const x = 3; // 不允许 x = 3; // 不允许 var x = 3; // 不允许 let x = 3; // 不允许 { const x = 2; // Tillåtet const x = 3; // Inte tillåtet x = 3; // Inte tillåtet var x = 3; // Inte tillåtet let x = 3; // Inte tillåtet }
återdeklareras i en annan scop eller block const
är tillåtet:
Exempel
const x = 2; // Tillåtet { const x = 3; // Tillåtet } { const x = 4; // Tillåtet }
Lyft
Genom var
Definierade variabler kommer attLyftupp till toppen. Om du inte förstår vad lyft (Hoisting) är, lär dig om detta kapitel.
Du får använda var variabel innan den deklarerats:
Exempel
carName = "Volvo"; // Du får använda carName här var carName;
Genom const
Definierade variabler lyfts inte upp till toppen.
const
Variabler får inte användas innan de deklarerats:
Exempel
carName = "Volvo"; // Du får inte använda carName här const carName = "Volvo";
- Föregående sida JS Let
- Nästa sida JS-operatorer