티스토리 뷰

기록

ECMA 2021에서 눈여겨볼 것들

als982001 2024. 5. 12. 15:56

1. ||=, &&=, ??=

  • Logical OR assignment (||=): a ||= b 와 같이 이용할 수 있으며, 이는 a = a || b 와 같음.
  • Logical AND assignment (&&=): a &&= b 와 같이 이용할 수 있으며, 이는 a = a && b와 같음.
  • Nullish coalescing assignment (??=): a ??= b 와 같이 이용할 수 있으며, 이는 a = a ?? b 와 같음.

 

 

2. Numeric separators

  • 엄청 긴 숫자에 '_'를 포함시켜서 보기 좋게 만들 수 있음. 
  • 실제 숫자 값이 변하지는 않음
  • '_'를 숫자 사이에 하나씩만 이용해야 함. '__'처럼 두 개 이상 붙일 시 에러

 

 

3. Promise.any

  • 여러 프로미스를 포함하는 이터러블을 받아, 그 중 하나라도 이행(fulfill)될 때까지 기다림.
  • 최소한 하나의 프로미스가 성공적으로 이행되면, 그 결과를 사용해 프로미스를 이행
  • 모든 프로미스가 거부(rejected)되면, AggregateError를 통해 거부되며 이 에러는 각 프로미스의 거부 이유를 포함
  • Promise.any()는 하나만이라도 성공하면 될 때 유용
const promise1 = Promise.reject(0);
const promise2 = new Promise((resolve) => setTimeout(resolve, 100, 'quick'));
const promise3 = new Promise((resolve) => setTimeout(resolve, 500, 'slow'));

Promise.any([promise1, promise2, promise3]).then(value => console.log(value));
// 로그: 'quick'

 

 

4. String.prototype.replaceAll(searchValue, newValue)

  • 문자열 내에서 주어진 패턴(문자열 또는 정규식)을 찾아 다른 문자열로 교체하고, 결과로 새 문자열을 반환
  • searchValue가 문자열인 경우, 문자열 전체에서 일치하는 모든 인스턴스를 교체
  • 정규식을 사용할 때는 전역 플래그(g)를 사용하지 않아도 모든 일치 항목을 대체할 수 있음
  • 일반적인 replace() 메서드와 다른 점은, replace()는 첫 번째 일치만 대체하고 replaceAll은 모두 대체함
'2021/04/25'.replaceAll('/', '-'); // '2021-04-25'

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함