변수, 호이스팅, 클로저

  • 자바스크립트는 동적언어이다.
  • 타입은 프로그램이 처리되는 과정에서자동으로 파악한다.

⚡ let, const 사용하는 이유

ES6 이후로 var 대신 되도록 const, let을 사용해야 한다. 그 이유는 var의 변수 호이스팅과 function-level-scope로 생기는 문제 때문이다.

1. 호이스팅(Hoisting) 이란?

console.log(puppy);
var puppy ="cute";
console.log(puppy)

//결과
undefined
cute
  • puppy변수를 아직 선언하지 않은 상태에서 호출했는데 오류가 나지 않고 undefined라는 값을 반환한다. 이런 현상을 "호이스팅"이라고 한다.
  • 변수 호이스팅(Hoisting)은 변수의 선언과 초기화가 동시에 이루어져, 아직 값이 없음에도 오류가 나지 않는 현상을 말한다.
  • 근데 let, const를 사용하면 변수를 중복으로 선언할 수 없어 변수 호이스팅 문제를 해결할 수 있다.

2. function-level-scope란?

  • 함수의 블록 범위 내에서 선언한 변수는 함수 내에서만 인정하고 함수 외부에서 선언한 변수는 모두 전역변수가 된다는 뜻입니다.
    var puppy = "cute";
    console.log(puppy); // cute
    {
      var puppy = "so cute";
    }
    console.log(puppy); // so cute

댓글

Designed by JB FACTORY