ES2018(ES9) 변화

 

Rest, Spread

Rest

  • 선택되지 않은 나머지 속성을 모아준다.
  • 값이면 복사하고 객체는 참조한다.
const { a, ...rest } = { 
	a: 1, b: 2, c: 3 
}; 

console.log(rest); // { b: 2, c: 3}

- 코드 출처 : 제로초님 블로그

 

Spread

  • Object.assign과 비슷하다.
  • 값이면 복사하고 객체는 참조한다.(같은 속성명이라면 덮여씌워진다.)
const obj = { 
	a: 1, b: 2, c: 3 
}; 

const spread = { 
	a: 3, d: 4, ...obj, 
}; 

console.log(spread); // { a: 1, b: 2, c: 3, d: 4 } (a: 3이 덮어씌워짐)

- 코드 출처 : 제로초님 블로그

 

 

Promise.prototype.finally

  • then, catch외에 finally 추가
  • promise 실행 결과에 상관없이(성공 실패 여부 상관 없이) 마지막에 무조건 실행
  • finally 뒤에 then, catch 등을 체이닝 할 수 있음
  • resolve 값은 바꿀 수 없고 reject값만 바꿀 수 있다.

 

for-await-of (Async iteration)

  • 비동기 iterable 객체를 반복하는 구문
  • Async for - of문은 비동기 함수, 비동기 generator 함수 내에서만 사용 가능
  • promisa.all외에도 비동기 반복 처리에 옵션이 하나 더 생김

 

정규표현식

  • lookbehind 생김 - 특정 문자열 뒤의 문자열을 찾는 기능 - 이를 위해 ?>=, ?>! 심볼 추가
  • 캡쳐링 그룹에 네이밍가능
    • 캡쳐링이란? 괄호로 묶어준 것들
    • 기존에는 순서대로 번호가 매겨졌지만 이제 사용자가 네이밍할 수 있음
    • 결과에 groups 속성으로 접근 가능
  • s 플래그 추가되어 .의 기능이 강화
  • u 플래그 추가(특정 유니코드를 정규표현식으로 표현 가능 해짐)
  • \n도 매칭

 


 

ES2018(ES9)의 변화

https://www.zerocho.com/category/ECMAScript/post/5adae68aca91b1001b14dd29

[JS] ECMA2018 : ES9 알아보기

https://a-tothe-z.tistory.com/15

 

+ Recent posts