목록Javascript (6)
WJ
실행 컨텍스트 (EXECUTION CONTEXT) 실행 컨텍스트(Execution Context)는 코드들의 덩어리로 scope, hoisting, this 바인딩 등의 동작원리가 이루어 지는 자바스크립트의 핵심 원리중의 하나 입니다. ECMAScript 스펙에 따르면 실행 컨텍스트를 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이라고 정의 합니다.실행 컨텍스트는 실행 가능한 코드가 실행되는 환경 이라고도 말할 수 있습8니다. 여기서 실행 가능한 코드는 전역 코드 : 전역 영역에 존재하는 코드Eval 코드 : Eval 함수로 실행되는 코드함수 코드 : 함수 내에 존재하는 코드 일반적으로 실행 가능한 코드는 전역 코드와 함수 코드 입니다. 실행 컨텍스트에는 1. 변수객체(Variable Object..
프로토타입 프로토타입은 콘솔창을 통해 디버깅을 하다보면 보게 되실수 있을겁니다. 자바스크립트의 객체는 부모 역할을 담당하는 객체와 연결되어있습니다. 상속 개념과 같이 부모 객체의 프로퍼티 또는 메소드를 상속받아 사용할 수 있습니다. 이런 부모 객체를 프로토타입 객체 또는 줄여서 프로토타입이라고 부릅니다. ECMAScript spec 에서 자바스크립트의 객체는 자신의 프로토타입(부모로부터 물려받은)을 가리키는 [[Prototype]]이라는 숨겨진 프로퍼티를 가진다라고 되어있습니다. 크롬, 파이어폭스에서는 [[Prototype]]을 _proto_로 나타냅니다. function A() {};var A = new A();console.log(A); 위 코드를 실행하고 콘솔창을 확인하면 이러한 내용을 확인 하실수..
클로져(Closure) MDN에서는 클로져를 내부함수가 참조하는 외부함수의 지역변수가 외부함수에 의해 내부함수가 반환된 이후에도 life-cycle이 유지되는 것을 의미한다. 라고 정의했습니다. 여기서 클로져는 스코프와 밀접한 관계를 가지고 있습니다. 스코프란 함수의 유효범위라는 것을 알고 있으실 겁니다. 클로져는 이러한 함수 내부에서 생성된 데이터와 스코프로 인해 발생하는 특수한 현상 혹은 상태를 말합니다. 클로져에 대해 알아보며 특성과 장점들을 알아보겠습니다.접근 권한 제어지역변수 보호데이터 보존 및 활용 function a(){var x = 1;function b(){console.log(x);} // 변수 x 접근 가능b();console.log(x); } // 변수 x 접근 가능 a(); con..
다른 언어들에서 this는 클래스로부터 생성되는 인스턴스(어떤 집합에 속하는 개별적인 요소) 중 현재 객체를 의미한다고 합니다. 하지만 자바스크립트에서 this는 함수의 현재 실행 문맥(Execution Context)을 나타내며, 자바스크립트에는 4가지의 함수 실행 타입이 있기 때문에 각각의 실행 타입에 따라 this가 변하게 됩니다. 함수 실행 : alert('Hello World!');메소스 실행 : console.log('Hello World!');생성자 실행 : new RegExp('\d');간접 실행 : alert.call(undefined, 'Hello World!'); 각각의 타입은 서로 다른 각각의 문맥을 가지기 때문에 this 키워드를 바르게 이해하기 위해서는 실행 타입이 문맥에 어떤 ..
자바스크립트에서 함수는 function 키워드를 통해서 생성할 수 있습니다. 함수를 생성하는 방법으로는 3가지 방법이 있습니다. 함수선언식(Function Declaration)함수표현식(Function Expression)new function 함수 선언문 function a() {return 'a';} 기명 함수표현식 var b = function bb() {return 'bb';} 익명 함수 표현식 var c = function(){return 'c';} 각각의 함수 선언 방식에 따라 함수의 차이점을 가지고 있습니다. // 함수 선언식에서의 호이스팅 a();function a(){console.log('abc');};> abc // 함수 표현식에서의 호이스팅a();var a = function(){..
SCOPE 란 ?SCOPE (스코프)는 직역하면 영역, 범위라는 뜻을 가지고 있습니다. Javascript 안에서의 스코프는 변수와 매개변수의 유효범위를 나타내며 변수가 정의 될때 변수의 위치에 따라 전역 범위(Global Scope), 지역 범위(Local Scope) 로 나뉘어 집니다. Global Scope 는 전역 범위로 전역 범위에서 선언된 변수는 코드 어느 곳에서도 참조하여 사용 할 수 있습니다. Local Scope 는 지역 범위로 지역 범위에서 선언된 변수는 선언된 함수 내부안에서만 참조하여 사용 할 수 있습니다. 함수 외부에서 선언된 변수는 전역 스코프로 불리며 함수 외부에서 선언한 변수 global_scope는 local 함수 내에서도 불러 사용 할 수 있습니다. 하지만 local 함수..