MDN Web Docs에 따르면, 호이스팅(hoisting)이란 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것 이다.여기까지만 들으면 어떤 개념인지 아리송하다. 좀 더 쉽게 풀어서 설명하자면, 호이스팅은 변수나 함수의 선언만 유효 범위의 최상단으
MDN Web Docs에 따르면, 클로저(closure)란 함수와 함수가 선언된 어휘적 환경의 조합 이다.더 쉽게 말하면, 클로져는 함수 내에서 함수를 정의하고 사용하는 것이고, 이 때 정의된 함수는 만들어진 환경을 기억한다 라고 할 수 있다. 클로저=함수+환경(Lex
this는 일반적으로 메소드를 호출한 객체가 저장되어 있는 속성 이다. 하지만 반드시 그런 건 아니다. MDN에 따르면, 대부분의 경우 this의 값은 함수를 호출한 방법에 의해 결정된다. 각각의 상황에서 this의 값을 알아보자.전역 실행 문맥(global execu
실행 컨텍스트란 자바스크립트 코드가 실행되는 추상적인 환경 혹은 문맥(context) 이다. 여기서 환경 이라 함은 this의 값, 변수의 유효 범위, 접근할 수 있는 변수, 함수, 객체 등을 말한다. 실행 컨텍스트는 세 가지 종류로 구분된다.전역 실행 컨텍스트(Glo