자바스크립트 기초 공부하기
var: 함수 스코프를 가져 블록과 관계 없이 접근 가능
const, let: 블록 스코프를 가져 블록 밖에서는 변수에 접근 불가능
const: 한 번 값을 할당하면 다른 값 할당 불가, 초기화할 때 값을 할당해줘야 함(상수)
let: 변수
객체의 메서드에 함수를 연결할 때 콜론과 function을 붙이지 않아도 된다.
속성명과 변수명이 동일한 경우에는 한 번만 써도 된다.
객체의 속성명은 동적으로 생성할 수 있다.
function 선언 대신 '=>' 기호로 함수 선언
기존 function과 this 바인드 방식이 다름
화살표 함수는 상위 스코프의 this를 그대로 물려받는다.
클래스 기반이 아닌 프로토타입 기반으로 동작
문법을 보기 좋게 클래스로 바꾼 것
ES2015부터 자바스크립트와 노드의 API 대신 프로미스 기반으로 재구성
중요한 객체!
1. 프로미스 객체 생성
const promise = new Promise((resolve, reject) => {
if (condition) {
resolve('성공');
} else {
reject('실패');
}
});
promise
.then((message) => {
console.log(message); //성공(resolv)한 경우 실행
})
.catch((error) => {
console.error(error); //실패(reject)한 경우 실행
})
.finally(() => {
console.log('무조건');
});
프로미스를 사용한 코드를 한 번 더 줄여준다.
async function findAndSaveUser(Users){
try {
let user = await Users.findOne({});
user.name = 'zero';
user = await user.save();
user = await Users.findOne({ gender: 'm'});
} catch(error) {
console.error(error);
}
}
코드 예제: [Node.js 교과서 개정2판], 조현영 참고