자바스크립트의 var, let, const는 변수를 선언 할 때 사용하는 키워드로 필수로 알아야 하는 개념 중 하나이다.
let message; // message라는 이름으 가진 변수를 선언
message = 'hi'; // message라는 변수에 'hi'라는 문자열을 할당
alert(message) // hi
// 선언과 할당을 동시에 할 수 있다.
let message = hello;
$
, _
만 들어갈 수 있다.let
,class
,return
,function
)도 사용 할 수 없다.if(1>0){
var foo = true
}
alert(foo) // true, var는 코드 블록을 무시하기 때문에, foo는 전역변수가 된다. 따라서 if 문이 끝났어도 변수에 접근 할 수 있다.
// 단 var가 아니라 let을 사용했다면 foo는 if문 안에서만 접근이 가능하다.
단 코드블록이 함수 안에 있다면 var는 함수 레벨 변수가 된다.
function hello(){
if(1>0){
var foo = "hi";
}
alert(foo) // 정상적으로 작동이 된다.
}
hello();
alert(foo) // ERROR
let
대신 const
를 사용한다.const
로 선언한 변수를 우리는 상수(const) 라고 부른다.따라서 재할당이 불가능하며 변경을 하려고하면 에러가 발생이 된다.
const foo = 1;
foo = 2; // ERROR
const age = 25;
age = age + 1 ; // ERROR, age라는 상수를 언제든지 불러낼 수 있지만 값을 변경 할 수 는 없다.
const COLOR_RED ="#F00";
const COLOR_GREEN = "#0f0";
const COLOR_BLUE = "#00f";
const COLOR_ORANGE = "#FF7F00";
var 변수는 범위 내에서 업데이트하고 다시 선언 할 수 있다. (재선언 O, 재할당 O)
let 변수는 업데이트 할 수 있지만 다시 선언 할 수는 없다. (재선언 X, 재할당 O)
const 변수는 업데이트하거나 다시 선언 할 수 없다. (재선언 X, 재할당 X)
두개의 공통점은 var와 다르게 변수 재선언 불가능하다.
즉, 자바스크립트에서 상수 선언은 const로 한다.
const는 선언 키워드이기 때문에 선언과 할당을 동시에 하지 않으면 에러가 난다. 즉 재할당 불가능하다.