======JavaScript Const====== * description : JavaScript Let * author : 오션 * email : shlim@repia.com * lastupdate : 2021-04-13 \\ =====ECMAScript 2015===== ES2015는 ''let''과 ''const''라는 두 가지 중요한 새 %%JavaScript%% 키워드를 도입했습니다.\\ \\ 재할당 할 수 없다는 점을 제외하고, ''%%const%%''로 정의된 변수는 ''%%let%%'' 변수처럼 작동합니다.\\

JavaScipt const

You cannot change a primitive value.

=====Block Scope===== ''%%const%%''로 변수를 선언하는 것은 **블럭 범위(Block Scope)**와 관련하여 ''%%let%%''과 비슷합니다.\\ \\ 아래 예제의 블록 내부에서 선언된 x는 블록 외부에서 선언된 x와 동일하지 않습니다.\\

Declaring a Variable Using const

=====Assigned when Declared===== %%JavaScript%% ''%%const%%'' 변수는 선언될 때 값을 할당받아야 합니다:\\ ====Incorrect==== const PI; PI = 3.14159265359; =====Correct===== const PI = 3.14159265359; =====Not Real Constants===== ''%%const%%'' 키워드는 약간 오해의 소지가 있습니다.\\ \\ 상수 값을 정의하지 않습니다. 값에 대한 상수 참조를 정의합니다.\\ \\ 이 때문에, 상수 프리미티브(primitive) 값은 변경할 수 없지만, 상수 오브젝트의 속성은 변경할 수 있습니다.\\ =====Primitive Values===== 상수(constant)에 프리미티브 값을 할당하면, 프리미티브 값을 변경할 수 없습니다.\\ const PI = 3.141592653589793; PI = 3.14; // This will give an error PI = PI + 10; // This will also give an error =====Constant Object can Change===== 상수 오브젝트의 속성을 변경할 수 있습니다.\\

JavaScript const

Declaring a constant object does NOT make the objects properties unchangeable:

\\ 하지만 상수 오브젝트를 재할당할 수는 없습니다.\\

JavaScript const

But you can NOT reassign a constant object:

=====Constant Arrays can change===== 상수 배열의 요소들을 변경할 수 있습니다.\\

JavaScript const

Declaring a constant array does NOT make the elements unchangeable:

\\ 하지만, 상수 배열을 재할당할 수는 없습니다.\\

JavaScript const

You cna NOT reassign a constant array:

\\ ''%%const%%'' 키워드는 Internet Explorer 10 이하 버전에서는 지원되지 않습니다.\\ =====Redeclaring===== %%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%%'' 변수를 재선언 또는 재할당하는 것은 허용되지 않습니다.\\ const x = 2; // Allowed const x = 3; // Not Allowed x = 3; // Not Allowed var x = 3; // Not Allowed let x = 3; // Not Allowed { const x = 2; // Allowed const x = 3; // Not Allowed x = 3; // Not Allowed var x = 3; // Not Allowed let x = 3; // Not Allowed } \\ 다른 범위 또는 다른 블록에서 ''%%const%%''로 변수를 재선언하는 것은 허용됩니다.\\ const x = 2; // Allowed { const x = 3; // Allowed } { const x = 4; // Allowed } =====Hoisting===== ''%%var%%''로 정의된 변수는 맨 위로 올라 와서 언제든지 초기화 될 수 있습니다.\\ \\ 의미 : 변수를 선언하기 전에 사용할 수 있습니다.\\ carName = "Volvo"; alert(carName); var carName; \\ ''%%const%%''로 정의된 변수는 블록의 맨 위에 올려지지만, 초기화되지는 않습니다.\\ \\ 의미 : 코드 블록은 변수를 인식하지만 선언될 때까지 사용할 수 없습니다.\\ \\ 선언될 때까지 변수는 블록이 시작되는 "TDZ (Temporal Dead Zone)"에 있습니다.\\ \\ 선언하기 전에 ''%%const%%'' 변수를 사용하는 것은 구문 오류이므로, 코드가 실행되지 않습니다.\\ ====This code will not run==== carName = "Volvo"; const carName; {{tag>오션, Javascript Const}}