JavaScript | let 과 var의 차이, 호이스팅, 함수선언식과 함수표현식

Hayley·2021년 12월 22일
0

호이스팅(Hoisting):

  • 선언된 함수와 변수를 최상단으로 끌어올림
    • 실제로 코드가 끌어올려지는 것은 아니며,
      자바스크립트 Parser가 내부적으로 끌어올려서 처리함
  • 따라서 유효범위의 코드가 실행되기 전 메모리에 먼저 저장했던 선언문을 사용할 수 있다

호이스팅 대상 : var 와 함수선언식(function)


let:

  • ES6이후 업데이트 됨
  • TDZ(Temporal Death Zone) 개념 적용으로 var 단점 극복
    var 쓰지 말고 let 쓰자

var:

  • 전역변수와 지역변수에 대한 개념이 확실치 않음
  • 함수만 제외하고 나머지는 전역변수로 올려버림

전역변수 : 블락 밖에서 선언하여 어디서든 쓰일 수 있는 변수
지역변수 : 블락 내에서 선언하여 블락 내에서만 쓸 수 있는 변수


함수선언식 예제:

function helloB() {
    return "하이";
}; //호이스팅이 일어남

함수표현식 예제:

let helloA = function() {
    return "하이";
}; //호이스팅이 일어나지 않음

* 화살표 문법 예제:

let helloA = () => "하이";
//함수표현식의 무명함수를 간결하게 작성하는 방법
//마찬가지로 호이스팅이 일어나지 않음
profile
👩🏻‍💻✍🏻

0개의 댓글