var 그리고 const 와 let

1998 단어 JavaScriptJavaScript

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문법에서 새로 도입한 letconst입니다.

const 와 let

const는 ES6 문법에서 새로 도입되었으며 한번 지정하고 나면 변경이 불가능한 상수를 선언할 때 사용합니다.

let동적인 값을 담을 수 있는 변수를 선언할 때 사용합니다.

letconst의 scope는 블록 단위입니다.

function myFunction() {
    let a = 1;
    if(true){
    	let a = 2;
        console.log(a); // 2
    }
    console.log(a); // 1

}

if문 내부에서 선언한 a 값은 if문 밖의 a값을 변경하지 않습니다.

letconst를 사용할 때 같은 블록 내부에서 중복 선언이 불가능합니다.

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님의 리액트를 다루는 기술 - 개정판

좋은 웹페이지 즐겨찾기