🌈 기술스택/JavaScript
일급 객체 (First Class Object)
일급 객체 (First Class Object)
2021.10.02First Class Object 자바스크립트를 공부하다 보면, 일급 객체(First Class Object)라는 용어를 종종 볼 수 있습니다. 어떤 의미에서 그냥 객체도 아니고, 일급 객체라고 부르는 것일까요? 자바스크립트에서는 다음 조건에 해당되는 객체를 모두 일급 객체라 합니다. 런타임 시점에 무명의 리터럴로 생성할 수 있다. 변수나 자료구조(배열/객체)에 할당할 수 있다. 함수의 매개변수로 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. 자바스크립트에서 함수도 객체이기 때문에 묶어서 일급 객체라 부르겠습니다. 위 조건에 따라 코드로 구현하면 다음과 같습니다. // 1. 런타임 시점에 무명의 리터럴로 생성할 수 있으며, // 2. 변수나 자료구조(배열/객체)에 할당할 수 있다. const su..
호이스팅 (Hoisting)
호이스팅 (Hoisting)
2021.10.01Hoisting 🤔 호이스팅(Hoisting)은 변수나 함수의 선언문을 스코프의 최상단으로 끌어올리는 자바스크립트의 특별한 동작입니다. 이를 이해하기 위해서는 자바스크립트 엔진의 동작 과정이 소스를 평가하는 과정과 실행하는 런타임 과정으로 나뉘는 것을 알아야 합니다. 자바스크립트 엔진은 코드를 실행하기 전에 필요한 정보, 예를 들어 변수 선언을 포함한 모든 선언문(var, let, const, function, class 등)을 읽어 메모리에 등록합니다. 메모리에 등록된 식별자들은 평가 과정이 끝나고, 런타임이 진행되면서 값이 할당됩니다. 다음의 코드는 호이스팅이 발생합니다. console.log(x); // undefined var x = 'hello'; console.log(x); // hello v..