자바스크립트 상수
const
키워드는
ES6 (2015) 에 도입되었습니다 .
로 정의된 변수 const
는 재선언할 수 없습니다.
로 정의된 변수 const
는 재할당할 수 없습니다.
로 정의된 변수 const
에는 블록 범위가 있습니다.
재할당할 수 없음
const
변수를 재할당할 수 없습니다 .
예시
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
할당되어야 함
JavaScript const
변수는 선언될 때 값을 할당해야 합니다.
옳은
const PI = 3.14159265359;
잘못된
const PI;
PI = 3.14159265359;
JavaScript const는 언제 사용합니까?
일반적으로 const
값이 변경될지 모르는 경우가 아니면 항상 로 변수를 선언하십시오.
const
선언할 때 사용 :
- 새로운 어레이
- 새로운 개체
- 새로운 기능
- 새로운 정규 표현식
상수 객체와 배열
키워드 const
가 약간 오해의 소지가 있습니다.
상수 값을 정의하지 않습니다. 값에 대한 상수 참조를 정의합니다.
이 때문에 다음을 할 수 없습니다.
- 상수 값 재할당
- 상수 배열 재할당
- 상수 개체 재할당
- 상수 배열의 요소 변경
- 상수 객체의 속성 변경
하지만 당신은 할 수 있습니다:
상수 배열
상수 배열의 요소를 변경할 수 있습니다.
예시
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
그러나 어레이를 재할당할 수는 없습니다.
예시
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
상수 객체
상수 개체의 속성을 변경할 수 있습니다.
예시
// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};
// You can change a property:
car.color = "red";
// You can add a property:
car.owner = "Johnson";
그러나 개체를 재할당할 수는 없습니다.
예시
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; //
ERROR
브라우저 지원
키워드 는 const
Internet Explorer 10 또는 이전 버전에서 지원되지 않습니다.
다음 표는 const
키워드를 완벽하게 지원하는 첫 번째 브라우저 버전을 정의합니다.
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
블록 범위
로 변수를 선언하는
것은 블록 범위const
와 유사합니다 .let
이 예에서 블록에서 선언된 x는 블록 외부에서 선언된 x와 동일하지 않습니다.
예시
const x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
JavaScript 범위 장에서 블록 범위에 대해 자세히 알아볼 수 있습니다 .
재선언
JavaScript var
변수를 다시 선언하는 것은 프로그램의 어느 곳에서나 허용됩니다.
예시
var x = 2; // Allowed
var x = 3; // Allowed
x = 4; // Allowed
동일한 범위에서 기존 var
또는 let
변수를 로 다시 선언하는 const
것은 허용되지 않습니다.
예시
var x = 2; // Allowed
const x = 2; // Not allowed
{
let x = 2; // Allowed
const x = 2; // Not allowed
}
{
const x = 2; // Allowed
const x = 2; // Not allowed
}
동일한 범위에서 기존 const
변수를 재할당하는 것은 허용되지 않습니다.
예시
const x = 2; // Allowed
x = 2; // Not allowed
var x = 2; // Not allowed
let x = 2; // Not allowed
const x = 2; // Not allowed
{
const x = 2; // Allowed
x = 2;
// Not allowed
var x = 2;
// Not allowed
let x = 2;
// Not allowed
const x = 2; // Not allowed
}
const
다른 범위 또는 다른 블록에서 ,를 사용하여 변수를 다시 선언하는 것은 허용됩니다.
예시
const x = 2; // Allowed
{
const x = 3; // Allowed
}
{
const x = 4; // Allowed
}
Const 호이스팅
로 정의된 변수 var
는 맨 위로 올라가며 언제든지 초기화할 수 있습니다.
의미: 변수를 선언하기 전에 사용할 수 있습니다.
예시
괜찮습니다.
carName = "Volvo";
var carName;
호이스팅에 대해 더 알고 싶다면 JavaScript 호이스팅 장을 공부하십시오 .
로 정의된 변수 const
도 맨 위로 호이스팅되지만 초기화되지는 않습니다.
의미: const
변수를 선언하기 전에 사용하면 다음과 같이 됩니다
ReferenceError
.
예시
alert (carName);
const carName = "Volvo";