200905__JavaScript 변수 선언: var, let, const

Positive Ko·2020년 9월 5일
1

JavaScript

목록 보기
1/28

생활코딩으로 JavaScript의 기초를 배웠던 나는 let의 존재를 몰랐다..
ES6로 추가된 변수 선언인 let과 const에 대해 간략하게 정리해본다.

LET or VAR Declarations

var와 let의 가장 기본적인 차이는,
let은 var와 달리 변수의 범위가 해당 code block으로 한정 된다.
다음은 예시.

function getValue(condition) {
  if (condition) {
    let value = "blue";
    // other code
    return value;
  } else {
    // value doesn't exist here
    return null;
  }
  // value doesn't exist here
}

이에 반해, var로 선언을 하면 해당 code block 밖에서도 변수를 호출할 수 있다.
전역 변수처럼 기능하는 것.(regardless of where the actual declaration occurs; this is called hoisting)

// var hoisting (move delaration from bottom to top)
// var has no block scope. 
function getValue(condition) {
  var value;
  
  if (condition) {
    value = "blue";
    // other code
    return value;
  } else {
    return null;
  }
}

따라서 Let declaration은 다음과 같은 상황에서 오류가 난다.

var count = 30;
// Error: `count` has already been declared.
let count = 40;

CONST(Constant) Declarations

Constant란 한 번 설정하면 값을 변경할 수 없다는 의미다.
immutable data이기 때문에 security, thread safety, reduce human mistakes하는 목적으로 사용한다.

참고 사이트
https://codeburst.io/part-2-var-vs-const-vs-let-69ea73fe76c1

hoisting이란?
https://velog.io/@marcus/Javascript-Hoisting

profile
내 이름 고은정, 은을 180deg 돌려 고긍정 🤭

0개의 댓글