써먹는 웹개발

[ES6] 변수 선언 방식 3가지 (var, let, const) 본문

웹개발/ES6, ES2020

[ES6] 변수 선언 방식 3가지 (var, let, const)

kmhan 2020. 1. 23. 14:31


728x90
반응형

Javascript의 변수 선언 방식 3가지 (var, let, const)

1. var
 - 특징 : 변수 재선언 가능

var name = '테스트';
console.log(name); // 테스트

var name = '재선언 및 할당';
console.log(name); // 재선언 및 할당

 

소스가 많아지면 변수 재선언을 했는지 안했는지 한눈에 파악하지 못하기 때문에
ES6 이후에 보완된 선언 방식 2가지가 let과 const 입니다.

 


2-1. let
 - 특징 : 변수 재선언 불가, 재할당 가능

let name = '테스트';
console.log(name); // 테스트

let name = '재선언'
console.log(name);
// Uncaught SyntaxError: Identifier 'name' has already been declared 

tip) 활용방법 : 자주쓰는 for문을 선언할때 let으로 바꿔보라.

for (let i=0;i<5;i++){

}



2-2. const
 - 특징 : 변수 재선언, 재할당 모두 불가

const name = '테스트';
console.log(name) // 테스트

const name = '재선언';
console.log(name);
// Uncaught SyntaxError: Identifier 'name' has already been declared

name = '재할당';
console.log(name);
// Uncaught TypeError: Assignment to constant variable.

※ const를 사용하더라도 배열과 오브젝트의 값을 변경하는 것은 가능하다.

 - 다만 중괄호로 구분되면 변수 재선언 가능 (let도 동일함)

const hi = "hi1";

if (true) {
  const hi = "hi2";
  console.log(hi); // hi2
}

console.log(hi); // hi1
결과
hi2
hi1

 

 한줄 요약 : 변수 선언에는 기본적으로 const를 사용하고, 재할당이 필요한 경우에 한정해 let 을 사용하는 것이 좋다.

 

출처 : https://velog.io/@bathingape/JavaScript-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90

 


ES6 - const, let의 차이를 확인할 수 있는 예제

function f() {

 let x;

 {

   // 새로운 블록안에 새로운 x의 스코프가 생김

   const x = "sneaky";

   x = "foo"; // 위에 이미 const로 x를 선언했으므로 다시 값을 대입하면 에러 발생

 }

 // 이전 블록 범위로 돌아왔기 때문에 'let x'에 해당하는 메모리에 값을 대입

 x = "bar";

 let x = "inner"; // Uncaught SyntaxError: Identifier 'x' has already been declared

}

 

출처 : Vue.js 중급 강좌

728x90
반응형


Comments