써먹는 웹개발
[ES6] 변수 선언 방식 3가지 (var, let, const) 본문
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 중급 강좌
'웹개발 > ES6, ES2020' 카테고리의 다른 글
[ES6] 객체의 Prototype 변경 (0) | 2020.08.06 |
---|---|
[ES6] weakMap과 weakSet (0) | 2020.08.04 |
[ES6] 배열 재조회 (필요한 데이터만 가져오기) (0) | 2020.08.02 |
[ES6] let을 써야되는 상황 (0) | 2020.08.02 |
[ES6] Arrow Function의 정의 및 일반 function과 차이점 (0) | 2019.12.11 |