JavaScript Const
ECMAScript 2015
ES2015 引入了两个重要的 JavaScript 新关键词:let
和 const
。
을 통해 const
定义的变量与 let
变量类似,但不能重新赋值:
예제
const PI = 3.141592653589793; PI = 3.14; //会出错 PI = PI + 10; //也会出错
块作用域
在块作用域内使用 const
声明的变量与 let
变量相似。
在本例中,x 在块中声明,不同于在块之外声明的 x:
예제
var x = 10; //此处,x 为 10 { const x = 6; //此处,x 为 6 } //此处,x 为 10
您可以在上一章 JavaScript Let 中学到更多有关块作用域的知识。
在声明时赋值
JavaScript const
变量必须在声明时赋值:
不正确
const PI; PI = 3.14159265359;
正确
const PI = 3.14159265359;
不是真正的常数
关键字 const
有一定的误导性。
它没有定义常量值。它定义了对值的常量引用。
因此,我们不能更改常量原始值,但我们可以更改常量对象的属性。
原始值
如果我们将一个原始值赋给常量,我们就不能改变原始值:
예제
const PI = 3.141592653589793; PI = 3.14; //会出错 PI = PI + 10; //也会出错
常量对象可以更改
您可以更改常量对象的属性:
예제
//您可以创建 const 对象: 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; // 허용 }
提升
을 통해 var
정의된 변수는提升상단으로. 提升(Hoisting)이 무엇인지 모르시면, 이 장을 공부하세요.
var 변수를 선언 전에 사용할 수 있습니다:
예제
carName = "Volvo"; // 여기서 carName를 사용할 수 있습니다. var carName;
을 통해 const
정의된 변수는 상단으로 提升되지 않습니다.
const
변수는 선언 전에 사용할 수 없습니다:
예제
carName = "Volvo"; // 여기서 carName를 사용할 수 없습니다. const carName = "Volvo";