본문 바로가기

ES53

[ES5] 실행컨텍스트 1. 실행 컨텍스트 실행 컨텍스트(Execution Context)는 scope, hoisting, this, function, closure 등의 동작원리를 담고 있는 자바스크립트의 핵심원리이다. 실행 컨텍스트를 바로 이해하지 못하면 코드 독해가 어려워지며 디버깅도 매우 곤란해 질 것이다. ECMAScript 스펙에 따르면 실행 컨텍스트를 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이라고 정의한다. 좀 더 쉽게 말하자면 실행 컨텍스트는 실행 가능한 코드가 실행되기 위해 필요한 환경 이라고 말할 수 있겠다. 여기서 말하는 실행 가능한 코드는 아래와 같다. 전역 코드 : 전역 영역에 존재하는 코드 Eval 코드 : eval 함수로 실행되는 코드 함수 코드 : 함수 내에 존재하는 코드 일반적으로 실.. 2020. 3. 27.
함수 함수 함수란 특정 작업을 수행하기 위해 필요한 문들을 모아놓은 코드 블록을 의미한다. // multiply 함수의 정의(함수 선언문) function multiply(num1, num2) { return num1 * num2; } // multiply 함수의 호출 multiply(2, 4); // 8 1. 함수 정의 함수를 정의하는 방식은 3가지가 있다. 함수 선언문 함수 표현식 Function 생성자 함수 1.1 함수 선언문 함수 선언문(Function declaration) 방식 // multiply 함수 선언문 function multiply(num1, num2) { return num1 * num2; } 함수명 함수 선언문의 경우, 함수명은 생략할 수 없다. 매개변수 목록 0개 이상의 목록으로 괄.. 2020. 3. 27.
[ES5] 클로저 Closure 서문 클로저를 알기위해 많은 블로그와 자료들을 찾아봤는데 용어들이 생소하고 어려운 것들이 많았다. 모든 공부가 그러하듯 새로운 단어들이 주는 신선함(?) 때문에 이해를 어렵게 한다. 먼저 스코프, 렉시컬 스코프, 스코프 체인에 대한 개념을 익히는 것을 추천한다. 클로저를 이해하기 위해 먼저 알아야할 개념들 Scope(유효범위) Lexical scope (어휘적 유효 범위) Scope Chain (유효 범위 체인) ECMAScript에 정의된 클로저란? ECMAScript에서 공식적으로 정의한 것은 없다. 클로저란 자바스크립트가 채용하고 있는 기술적 기반 혹은 테크닉으로 보면 된다. 자바의 디자인 패턴처럼 클로저도 자바스크립트가 가지고 있는 특징들을 이용한 기술이다. 따라서 블로그들 마다 정.. 2020. 3. 27.