자바스크립트에서 this 는 모든 실행 컨텍스트마다 생성되는 특수한 변수로, 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수다. 자바나 C++ 같은 클래스 기반 언어에서 this는 언제나 클래스가 생성하는 인스턴스를 가리킨다. 하지만 자바스크립

자바스크립트에서 가장 혼동 되기 쉬운 개념인 클로저(closure)가 무엇인지, 무슨 원리인지 정리해봤다. 클로저를 이해하려면, 먼저 자바스크립트 코드를 실행하는 실행 컨텍스트(execution context)에 대해 알아야 한다. 자바스크립트 코드를 실행하는 JS 엔
모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프(scope)라 한다. 즉, 스코프는 식별자가 유효한 범위를 말한다. 코드는 전역(global)과 지역(lo
hoisting이란, 변수가 선언되기 이전 코드에서 변수를 사용할 수 있는 현상을 말한다. 흔히 “변수가 스코프 최상단으로 끌어올려지는 현상” 이라고 하지만, 실제로는 변수를 끌어올리는 것이 아니라, 코드가 실행되기 전, 실행 컨텍스트의 생성 단계에서 모든 변수 선언

객체 지향 프로그래밍, OOP(Object Oriented Programming)는 프로그램을 명령어 또는 함수의 목록으로 보는 전통적인 명령형 프로그래밍의 관점에서 벗어나, 여러 개의 독립적 단위, 즉 객체(Object)의 집합으로 프로그램을 표현하려는 프로그래밍 패

컴퓨터는 본래 0과 1밖에 이해하지 못하기 때문에, 각종 프로그래밍 언어로 작성된 코드는 실행에 앞서 컴퓨터 언어(machine code)로 변환되는 과정을 거쳐야 한다. 이 때 프로그래밍 언어별로 machine code로 변환되는 방법이 다른데, 이 방법에 따라 언어