반응형
2021년 JS 신규 기능으로 그렇게 크게 변경된 점은 없고 크게 4가지만 기억하면 될 듯하다.
1. replaceAll 기능 추가
> 기존에 replace() function은 첫번째 글자만 치환하였고 전부 바꾸려면 정규식을 사용하거나 그렇게 처리를 했어야했다.
> 이에 대해서 이제 replaceAll()을 사용하면 전부 바꿔주는 신규 함수가 생겼다.
const testString = "test is just test"
const resultReplace = testString.replace("test", "dev")
const resultReplaceAll = testString.replaceAll("test", "dev")
console.log(resultReplace) // dev is just test
console.log(resultReplaceAll) // dev is just dev
2. Numeric separators
> 큰단위 숫자를 더 쉽게 인식하기 위해 천단위 콤마같은 역할을 하는 기능이다 (_로 처리하면 된다.)
const bigNumber = 1029349202
const newBigNumber= 1_029_349_202
3. Logical assignment operator (||=, &&=, ??= 추가)
> +=와 같은 nullish coalescing, 할당 연산자임
'' || 'sunup1992'; // 'sunup1992';
'' ?? 'sunup1992'; // ''
null || 'sunup1992'; // 'sunup1992'
null ?? 'sunup1992'; // 'sunup1992'
false ?? 'sunup1992'; // false
a &&= b // a = a && b
a ||= b // a = a || b
a ??= b // a = a ?? b
let user = await Users.findOne({where: {id : userId}});
////////기존/////////
let defaultName = "noUser"
if (!user) {
user = defaultName
}
///////2021//////////
user ??= "noUser"
4. Promise.any
> 기존 Promise.all은 그 안의 함수들이 전부 resolve 되기를 기다린다면 이건 먼저 resolve되는게 있으면 바로 끝낸다.
const A = new Promise((resolve, reject) => {
setTimeout(() => resolve("A resolved"), 500);
})
const B = new Promise((resolve, reject) => {
setTimeout(() => resolve("B resolved"), 2000);
})
const resolvedPromises = async () => {
const resolved = await Promise.any([A,B])
console.log("One of promise resolved faster : ", resolved);
}
// 이렇게 하면 One of promise resolved faster : A resolved 가 찍힌다
반응형
'Backend 언어 > JS&TS' 카테고리의 다른 글
[이펙티브 타입스크립트] 몽키 패치보다는 안전한 타입을 사용하기 (0) | 2022.03.01 |
---|---|
[aws-sdk] aws sdk 3이 나왔다. (0) | 2021.05.14 |
[nestjs] nestjs를 시작하며 (0) | 2021.05.14 |
Jest 'JavaScript heap out of memory'에서 시작된 리팩토링 - (1) (0) | 2021.04.30 |
[jest] expect를 정리해보자 (0) | 2021.04.24 |