JavaScript - let, var, const의 차이
포스트
취소

JavaScript - let, var, const의 차이

본 예제는 다음 환경에서 실행되었습니다. Ubuntu 19.04 / Chrome 77.0.3865.120

옛날 자바스크립트 예제들을 보면, 변수를 선언할 때 대체로 var를 이용하여 선언한다.
그러나 요즘은 let을 사용하는 것이 권장되는 편이던데, 뭐가 다른 거지?

let,const <-> var의 차이: 스코프 범위의 차이!

let, const와 var를 구분짓는 가장 큰 차이는 서로 다른 스코프 범위를 가짐이다.
전자는 block-scoped이며 후자는 function-scoped이다.

즉 let, const는 선언된 블록, 즉 중괄호 밖으로 나가면 효력을 잃고, var는 같은 함수 안이라면 어디서든 사용할 수 있다. (물론 함수 안에 선언하지 않으면 둘 다 전역 스코프가 된다)

호이스팅 (Hoisting)

모든 변수의 선언은 코드 중간에서 하더라도 자바스크립트 엔진에 의해 전역 스코프의 경우 코드의 최상단에서, 지역 스코프의 경우 함수 최상단에서 선언된 것처럼 해석되며 이를 ‘호이스팅’이라 한다.

`console.log (greeter);
var greeter = "say hello"

//위와 같은 코드는 이렇게 해석된다.

var greeter;
console.log(greeter); // 아직 할당하기 전이므로 undefined가 출력됨
greeter = "say hello"`

let과 const의 차이: 최초 선언 후 재정의 가능 여부

let은 선언 후 값을 재정의할 수 있다. const는 처음 선언할 때 값을 입력하면 절대 수정할 수 없다.
그렇기 때문에 node.js 모듈 등 변경할 필요 없는 상수를 전역 변수로 로딩해야 할 때는 const를 사용한다.

This post is licensed under CC BY 4.0 by the author.

JavaScript - 스코프(Scope)와 클로저(Closure)

Baekjoon 14501번: 퇴사

Comments powered by Disqus.