자바스크립트 기초

MIIN·2021년 10월 25일
0

자바스크립트 기초 공부하기

var, const, let

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('무조건');
 });
  • 실행은 바로 하되 결괏값은 나중에 받는 객체
  • 결괏값은 실행 완료 후 then이나 catch 메서드를 통해 받음
  • new Promise는 바로 실행되지만 결괏값은 then을 붙였을 때 받게 됨
  • then이나 catch에서 다른 then이나 catch를 붙일 수 있다
  • 이전 then의 return 값을 다음 then의 매개변수로 넘긴다

async/await

프로미스를 사용한 코드를 한 번 더 줄여준다.

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판], 조현영 참고

0개의 댓글