Node.js

JavaScript 실행과 문법

쿠와와 2020. 11. 29. 22:11

이걸 이해 할 수 있다면 nodejs의 내부에 돌아가는 형식을 전부 이해한 것이다. 

1. 호출 스택   : 시작하자마자 anonymous가 생성되고 그 후 호출되는 함수가 쌓인다.  

2. 백그라운드 : 특정한 함수들을 따로 처리하는데 멀티쓰레드 형식으로 돌아가기 때문에 호출이랑 동시에 실행된다.

                    이벤트 리스너들이 대기하는 공간이다. 

3. 태스크 큐   : 이벤트 발생 후 호출되어야 할 콜백 함수들이 순서대로 기다리는 공간이지만 특정 조건의 함수들은

                    순서를 무시하고 먼저 실행 될 수 있다.

 

문법

1. var 이전에는 var로 변수를 선언했다. 

   - var은 함수 스코프이다. 

2. ES2015 이후에는 const , let로 변수를 선언한다. 

   - 이 두개는 블록 스코프이다. 

 

이게 무슨 소리인지 알아보자. 

// var
if (true) {
	var x = 1;
}
console.log(x);		// 실행이 된다.

function call_x(){
	var x = 1;
}
console.log(x); 	// error, 함수 스코프 밖

// const, let
if (true) {
	const x = 1;
}
console.log(x);		// error 블록 스코프 밖

대충 이런 느낌이다. 

 

const 는 선언할 때 값을 할당해야하며 따로 값을 변경하지 못한다. 

변경하고자 할 때에는 let으로 변수를 선언하면 된다. 

 

최근 변경된 템플릿 리터럴

const x = 1;
const y = 2;
let z;
x = 3;		// error

// const가 만약 객체라면 안의 내용들은 바꿀 수 있다.
// ex) 
x.value = 3; 	// 이거는 할 수 있다.

z = x + y;

// 최근 추가된 문법 
const str = '${z} = ${x} + ${y}'; // 더 간결하게 사용 가능

const Ob = {
	call_Hi(){
    	console.log('Hi');
    }
    hello_node,		// hello_node: hello_node를 저렇게 사용가능
    [변수 + 값]: '동적 속성명을 객체 속성명으로 사용가능';
}

화살표 함수

//예전
function add (x, y) {
	return x + y;
}

// 화살표 함수
const add = (x, y) => { return x + y; };		// 1번 방식

// 2번 방식 중괄호 다음 return이 바로 나올 경우 생략 가능
const add = (x, y) => (x + y);					

const not = x => !x;

const com = (x, y) => ({x, y})	// == 예전버전의 return {x:x, y:y}

// 또한 화살표 함수의 this는 무조건 부모의 this를 따라간다. 
// 그래서 func이 살아남은 이유가 살아남은 이유는 자신만의 this를 가지기 때문이다.
// 이말은 this를 안쓴다면 쓸 필요없다는 것이다. 

'Node.js' 카테고리의 다른 글

노드 내장 알아보기 #2  (0) 2020.12.04
노드 내장 알아보기 #1  (0) 2020.12.03
REPL와 모듈  (0) 2020.12.02
자바스크립트 정리  (0) 2020.12.01
노드란  (0) 2020.11.29