var 그리고 const 와 let
var
ES6 이전에는 값을 담는 데 var
키워드를 사용했는데
var
키워드의 scope(해당 값을 사용할 수 있는 코드 영역)는 함수 단위입니다.
function myFunction() {
var a = 'Hello';
if(true){
var a = 'bye';
console.log(a); // bye
}
console.log(a); // bye
}
varFunction();
if문 밖에서 var a = 'Hello';
를 선언하고, if문 내부에서 var a = 'bye';
를 선언했습니다.
if문 내부에서 새로 선언했음에도 if 밖에서 a를 조회하면 변경된 값이 나타납니다. 이것은 var
가 함수스코프이기 때문에 발생합니다.
이러한 문제점을 해결해 주는 것이 ES6문법에서 새로 도입한 let
과 const
입니다.
const 와 let
const
는 ES6 문법에서 새로 도입되었으며 한번 지정하고 나면 변경이 불가능한 상수를 선언할 때 사용합니다.
let
은 동적인 값을 담을 수 있는 변수를 선언할 때 사용합니다.
let
과 const
의 scope는 블록 단위입니다.
function myFunction() {
let a = 1;
if(true){
let a = 2;
console.log(a); // 2
}
console.log(a); // 1
}
if문 내부에서 선언한 a 값은 if문 밖의 a값을 변경하지 않습니다.
let
과const
를 사용할 때 같은 블록 내부에서 중복 선언이 불가능합니다.
let a = 1;
let a = 2;
// 오류 : Uncaught SyntaxError: Identifier 'a' has already been declared
const
는 한번 선언하면 재설정 할 수 없습니다.
const a = 2;
a = 5;
// 오류 : Uncaught TypeError: Assignment to constant variable.
결론
es6문법에서 var
을 사용할 일은 없습니다.
let
은 한번 선언한 후 값이 유동적으로 변할 수 있을 때만(ex: for문)사용하고,
const
는 한번 설정한 후 변할 일이 없는 값에 사용합니다.
쉽게 생각하면 기본적으로 const
를 사용하고, 해당 값을 바꿔야 할 때는 let
을 사용하면 됩니다.
참고
- VELOPERT님의 리액트를 다루는 기술 - 개정판
Author And Source
이 문제에 관하여(var 그리고 const 와 let), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@tennoken/var-let-const
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
es6문법에서 var
을 사용할 일은 없습니다.
let
은 한번 선언한 후 값이 유동적으로 변할 수 있을 때만(ex: for문)사용하고,
const
는 한번 설정한 후 변할 일이 없는 값에 사용합니다.
쉽게 생각하면 기본적으로 const
를 사용하고, 해당 값을 바꿔야 할 때는 let
을 사용하면 됩니다.
- VELOPERT님의 리액트를 다루는 기술 - 개정판
Author And Source
이 문제에 관하여(var 그리고 const 와 let), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tennoken/var-let-const저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)