Javascript 실행 컨텍스트와 호이스팅
· 약 2분
자바스크립트는 함수 선언보다 함수 실행을 먼저 하더라도 동작이 된다.
코드는 위에서 아래로 실행이 된다고 알고 있는데 왜 그런걸까?
실행 컨텍스트
실행 컨텍스트execution context는 실행할 코드의 환경 정보를 모아 놓은 객체로, 가장 먼저 실행되어 스택에 들어가게 된다.
이 실행 컨텍스트가 생성될 때, 호이스팅이 된다.
자바스크립트는 함수 선언보다 함수 실행을 먼저 하더라도 동작이 된다.
코드는 위에서 아래로 실행이 된다고 알고 있는데 왜 그런걸까?
실행 컨텍스트execution context는 실행할 코드의 환경 정보를 모아 놓은 객체로, 가장 먼저 실행되어 스택에 들어가게 된다.
이 실행 컨텍스트가 생성될 때, 호이스팅이 된다.
npm i -g express-generator
# express 프레임워크 기반 워크스페이스 폴더 생성
express [폴더명] --view=[뷰엔진]
cd [폴더명]
npm install
bin/www
var app = require('../app');
var debug = require('debug')('learn-express:server');
var http = require('http');
app.set(키,값) 형태로 데이터를 저장할 수 있으며 app.get(키)로 가져올 수 있다.자바스크립트는 자바와는 다르게 싱글 스레드라고 한다.
한번에 하나의 작업만 수행할 수 있음에도 불구하고 비동기, 논블로킹등을 지원하기에 실제 코드상 눈으로 확인하긴 어렵다.
따라서 아래 자바와의 비교를 코드를 통해 싱글 스레드를 눈으로 확인해보겠다.
잘못 된 정보가 있다면 댓글로 알려주길 바랍니다!
Promise 란?
비동기 작업의 결과값(성공,실패)를 저장하고 있는 컨테이너, resolve 와 reject를 통해 원하는 시점에 결과를 리턴할 수 있다.
Promise 생성
const promise = new Promise((resolve, reject)=>{
if(true){
resolve()
}else{
reject()
}
})
Promise를 사용한 콜백 처리.
미국 달러와 원화 , 엔화를 차례대로 서버에 요청하는 예제이다.