즉시 실행 함수 (IIFE, Immediately-Invoked Function Expression) 즉시 실행하여야하지만 전역 스코프(Global Scope)를 오염시키지 않으려고 할때 사용한다. 함수 리터럴을 ( )로 감싼 뒤 바로 실행하는 형태가 일반적이며 기명도 가능하고 익명도 가능하다. ( )로 감싸주는 이유는 자바스크립트는 function(){ } 키워드를 사용할 경우 파서가 선언문으로 인지한다. 선언문은 해석기에서 실행 후 사라지기에 값으로 존재하지 않는다. 때문에 "함수 표현식"을 통해 명시적으로 나타내줘야한다. ( )를 붙이는 것 외에도 연산자를 앞에 붙일 경우에도 즉시 실행된다. -function(a, b){ return console.log(a + b) })(1,2) // 3 // 즉..
this javascript의 this 키워드는 다른 언어와는 조금 다르게 동작한다. 실행컨텍스트(EC, Execution Context)가 생성될때마다 this의 바인딩이 일어나며 우선순위가 있다. 대부분은 함수를 호출한 방법에 의해 this가 결정된다. 따라서 함수의 호출때마다 다를수도 있다. 1. new 는 해당객체 2. call, apply, bind 같은 명시적 바인딩일 경우 인자로 전달된 객체 3. 객체의 메소드로 호출한 경우 해당 객체 4. 그외 엄격모드는 undefined로 초기화 됨 (엄격, 비엄격에 차이가 있다) 5. 글로벌에서 일반 브라우저는 window, 노드는 global 전역 문맥 전역 실행 문맥에서의 this는 엄격모드 여부에 관계없이 전역 객체를 참조합니다. // 브라우저 전..
네이티브 객체(NAtive Objects) 자바스크립트 언어 규약(ECMAScript)명세의 정의된 내장 객체이다. native object, built-in object라고 부른다. 전역의 공통 기능을 제공하며 특정 환경(브라우저 등의 클라이언트 프로그램, 또는 Node.js 등의 런타임)에 종속되지 않는다. 네이티브 객체는 모든 내장 객체(built-in object)를 포함하며 내장 네이티브 생성자는 각자의 .prototype객체를 가진다. 프로토타입 객체에는 해당 객체의 하위 타입별로 고유한 로직이 담겨있다. 종류 String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol() 생성자 처럼 사용할 수 있..
실행컨텍스트(Execution Context) 코드의 실행환경에 대한 여러가지 정보를 담고 있는 개념 자바스크립트 엔진에 의해 만들어지고 사용되는 코드 정보를 담은 객체의 집합 글로벌스코프, 함수스코프 등.. 스코프의 코드는각각의 실행 컨텍스트를 생성한다. 글로벌 스코프는 실행 이전에 생성되지만, 함수스코프는 함수 호출 시 생성된다. 글로벌 스코프는 코드를 실행하기 전에 쌓이고 모든 코드를 실행하면 제거된다. 실행 컨텍스트가 생성되면 흔히 콜 스택(Call Stack)이라고도 불리는 실행 컨텍스트 스택에 쌓이게 된다. 구성요소 어휘 환경(Lexical Environment) 변수 및 함수 등의 식별자(Identifier) 및 외부 참조에 관한 정보를 가지고 있는 컴포넌트 구성요소 Environment R..