호이스팅 2

호이스팅 (Hoisting)

호이스팅 (Hoisting) : 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위(함수 블록{})의 최상단에 선언하는 것을 의미 - JavaScript 함수는 실행되기 전 함수 내에 필요한 변수값을 모두 모아 유효 범위의 최상단에 선언 호이스팅 절차 1. JavaScript parser가 함수 실행 전 해당 함수를 한번 훑음 2. 함수 안에 존재하는 변수/함수 선언에 대한 정보를 기억하고 있다가 실행 ※ 실제로 코드가 위로 끌어올려지는 것이 아니라, JavaScript parser가 내부적으로 끌어올려서 처리 ※ 실제 메모리 변화가 X 호이스팅의 대상 - var 변수 선언과 함수 선언문 - 할당은 끌어올려지지 않음 - let/const 변수 선언과 함수 표현식에서는 호이스팅 발생 X ※ 함수..

var VS let VS const 의 차이

var - es5의 변수 선언 방법 - Function-level Scope let - es6의 변수 선언 방법 - Block-level Scope - 일반 변수 - 중복 선언시 TypeError 발생 const - es6의 변수 선언 방법 - Block-level Scope - 상수용 변수 - 처음 생성 시 초기값 필수 지정 함수 레벨 스코프 (Function-level scope) - 함수 내에서 선언된 변수는 함수 내에서만 유효하며, 함수 외부에서 참조 불가능 - 함수 내부에서 선언한 변수는 지역 변수 / 함수 외부에서 선언한 변수는 전역 변수 - 자바스크립트 특징 - var 키워드 생략 허용 - 변수 중복 선언 허용 - 전역 변수 남용 블록 레벨 스코프 (Block-level scope) - 모든..