이걸 이해 할 수 있다면 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 |