Programming Languages 6

[TypeScript] Promise / async & await

TypeScript compiling 참고 code.visualstudio.com/docs/typescript/typescript-compiling File 을 로컬에서 읽어들이기 기본적으로 fs 패키지의 readFile 함수를 사용/ 동기로 처리하고 싶은 경우 readFileSync 함수를 사용하면 된다. import {readFileSync, readFile} from 'fs'; const buffer : Buffer = readFileSync('../package.json'); //promise 를 사용한 예시 const readFilePromise = (filename : string) : Promise => new Promise( (resolve, reject) => { readFile(file..

[JavaScript] Asynchronous JavaScript : Promises, Async/Await and AJAX

* Callback hell 을 피하기 위해서 도입된 Promises * Promise 란? 객체의 일종으로, 특정한 이벤트가 일어났는지, 않았는지에 대해서 keep track 한다. 이벤트가 일어난 후에 어떤 것들이 실행되는지 결정한다. * Promise 의 상태 Pending -> event happens -> settled / resolved -> fulfilled OR rejected const getIds = new Promise( (resolve, reject) => { //callback function setTimeout(() => { // 성공한 경우 resolve([12,312, 123, 111]); }, 1500); } ); //결과가 성공적이라면 출력한다. //then 은 fulfi..

[JavaScript] Next Generation JavaScript : ES6

* ES6-8 까지는 대부분의 모던 브라우저에서 지원하지만, 오래된 브라우저에서는 ES5 로 변환해야 함. `let` and `const` - const : 불변값 - let : 가변값 var name = 'jane'; var age = 23; name = 'jane miller'; console.log(name); //jane miller 가 출력된다. //ES6 const name1 = 'jane smith'; let age1 = 24; //something that can mutate name1 = 'jane doe'; // Type Error !!! * const 와 let 은 block scoped 이지만, var 은 function scoped 이다. var 은 함수 안에서 if문 안에서 선언..

[JavaScript] 자바스크립트는 어떻게 돌아가는가?

거시적인 관점 프로그래머가 코드를 작성하고 실행하면 자바스크립트 언어를 해석할 수 있는 엔진이 이를 해석해서 기계어로 번역한다. 흔히 알고 있는 브라우저들도 엔진이 있고, 여러 다른 엔진들이 존재한다. 엔진 안에서는 Parser 가 실행되어서 코드들을 갖고 Abstract Syntax Tree 를 만들어내고, 이를 기계어로 변환한다. 변환된 후 컴퓨터에서 코드가 실행된다. 엔진의 구체적인 작동 방식은 엔진마다 차이가 있다. 좀 더 자세히 알아보자. Execution Context, Execution Stack 자바스크립트 코드는 항상 어떤 특정한 환경 안에서 돌아간다. 이 환경을 Execution Context 라 부른다. 기본적인 환경은 Global Execution Context 이다. 함수들에 대한..