javascript 3

This

inner VariableEnvironment environmentRecord outerEnvironmentReference LexicalEnvironment environmentRecord outerEnvironmentReference ThisBinding This binding은 실행 컨텍스트가 활성화 될 때 한다! (함수가 호출될 때) 호출하는 방식에 따라 다르다! 전역공간에서 window / global 함수 호출시 window / global (ES6에서는 arrow function을 이용해 해결 가능) 메서드 호출시 메서드 호출 주체 (메서드명 앞) a.b(); a가 this callback 호출시 기본적으로는 함수내부에서와 동일 생성자함수 호출시 인스턴스 메서드 호출시 // 메서드 내부함수에..

실행 컨텍스트 (Execution Context)

context: 해당 코드의 배경이 되는 조건, 환경 Execution Context: 함수를 실행할 때 필요한 환경정보를 담은 객체 반복문, 조건문은 블록스코프로 별개의 실행컨텍스트를 생성하진 않는다. 오직 함수에 의해서만 컨텍스트를 구분할 수 있다. var a = 1; function outer() { console.log(a); function inner() { console.log(a); var a = 3; } inner(); console.log(a); } outer(); console.log(a); call stack: 현재 어떤 함수가 동작중인지, 다음에 어떤 함수가 호출될 예정인지 등을 제어하는 자료구조 call stack에 실행 컨텍스트가 쌓이는 순서: 전역 컨텍스트 -> outer ->..

데이터 타입 (data types)

기본형 (Primitive Type) Number String Boolean null undefined Symbol 참조형 (Reference Type) Object Array Function RegExp Set / WeakSet Map / WeakMap ... stack memory 변수 기본형 데이터 정적 할당 heap memory 참조형 데이터 동적 할당 기본형 데이터 (Primitive Data) var a; a = 'abc'; a = 'abcdef'; 주소 ... 1002 1003 1004 1005 데이터 이름: a 값: @5004 -> @5005 주소 ... 5002 5003 5004 5005 5006 5007 ... 데이터 'abc' 'abcdef' 참조형 데이터 (Reference Data..