본문 바로가기

언어20

(JavaScript)컨텍스트와 클로져 컨텍스트에 대해서 실행가능한 자바스크립트 코드 블록이 실행되는 환경이다. 컨텍스트가 실행되는 경우는 전역코드, Eval() 함수로 실행되는 코드, 함수코드 이다. 이러한 코드가 실행되면 해당 코드에 맞는 실행 컨텍스트가 실행되게 된다. C나 Java의 콜스택과 같이 스택에 쌓이고 가장 최상단 스택의 내용이 현재 실행되고 있는 컨텍스트이다. 활성객체(변수객체) 컨텍스트가 생성되면 JS엔진은 컨텍스트의 정보를 담을 객체를 같이 생성함. 해당 객체 안에는 그 컨텍스트의 Arguments(함수코드일때), 스코프체인([[scope]]), 일반변수(정의된 함수 포함), this가 들어있다. 스코프 체인 변수와 함수들을 인식하기 위한 연결리스트이다. 활성객체안에 있는 [[scope]] 프로퍼티를 통해 해당 스코프 체.. 2021. 9. 6.
(JavaScript)ES6와 TypeScript의 공통점과 차이점 - 차이점편 이번에는 저번에 이어 차이점에 대해 써보려고 한다. 사실 TypeScript안에 ES6가 포함되어 있으므로 차이점이란 그냥 TypeScript의 특징으로 봐도 될것 같다. 타입스크립트가 가진 기능들을 서술하고 각 기능들이 ES6에 대하여 어떤 의의가 있는지 서술하고자 한다. 정적 타입체크 기능 위의 코드는 string을 함수로 호출하려는 코드이다. 이런 코드에 대해 기존 자바스크립트에서는 어떠한 에러도 발생시키지 않은채 컴파일이 되고 런타임상에서 에러를 뱉는다. 하지만 타입스크립트의 경우 컴파일 이전에 에러를 뱉는것을 볼 수 있다. 이러한 기능을 하는 도구가 static type-checker이다. 그외의 에러체킹 기능 만약 존재하지 않는 프로퍼티에 접근하려 할때 기존 자바스크립트는 undefiend를 .. 2021. 9. 1.
(JavaScript)ES6와 TypeScript의 공통점과 차이점 - 공통점편 ES6의 개념 ECMA 2015로도 불리는 ES6는 기존 ES5에 비해서 화살표 함수, 클래스 등 여러 문법들이 추가된 버전이다. 타입스크립트의 개념 MS에서 만든 자바스크립트의 상위언어로써 서로 다른 언어는 아니다. 타입스크립트는 기존 자바스크립트가 타입을 명시하지 않아서 생기는 에러들을 타입을 명시해줌으로써 해결해줬다. 또한 인터페이스나 제네릭, Enum 등의 기능들을 추가했다. 공통점 사실 타입스크립트 안에 ES6가 속해있기 때문에 공통점은 기존 ES5와 비교해 ES6에 추가된 기능들을 써보겠다. 1. 화살표 함수 function 키워드 대신 =>를 써서 간단하게 함수를 선언할 수 있다. 기존 const f = function(){} 과같은 함수표현식의 단축표현이기 때문에 호이스팅 되진 않는다. f.. 2021. 8. 31.
(JavaScript)this 정리 일반적인 함수 내부의 this는 해당 함수를 호출하는 대상을 가리킨다. var f = function(){console.log(this)} f(); var obj = {age:10,f: function(){console.log(this)}} obj.f(); 첫번째 this는 해당 함수를 호출한 전역객체(window)이고, 두번째 this는 f함수를 호출한 obj객체가 나오는걸 볼 수 있다. 중첩함수의 경우 전역객체를 가리킨다. var obj = { age:10, f1: function() { console.log(this) var f2 = function(){ console.log(this) } f2() } } obj.f1(); 중첩된 함수 f2는 f1의 this가 obj를 가리키는것과 달리 전역객체(w.. 2021. 8. 31.