값이 있는지 없는지 판단
const val = 0
const nullish = val ?? 'Null' // 0
trim을 좀 더 세부적으로
//trimStart()
' trimStart'.trimStart(); // 'trimStart'
'trimStart '.trimStart(); // 'trimStart '
//trimEnd()
'trimEnd '.trimEnd(); // 'trimEnd'
' trimEnd'.trimStart(); // ' trimEnd'
replace를 해당 모든 문자열에 사용
//.replace(/문자/g,"")) === .replaceAll("문자",""));
console.log("BANANA.".replace(/A/g,"a"));
// "BaNaNa"
console.log("BANANA.".replaceAll("A","a"));
// "BaNaNa"
중첩 배열, 빈공간 삭제
const arr = ["a", ["b"], ,["c"]];
arr.flat() // ["a","b","c"] 빈요소가 있으면 무시
let arr1 = [1, 2, 3, 4];
arr1.flatMap(x => [x * 2]); // [2, 4, 6, 8]
모든 promise 이행 후 값 return
하나의 promise라도 실패시 reject된다.
const promise1 = new Promise((resolve) => {
setTimeout(() => {
resolve(1);
}, 1000);
});
const promise2 = new Promise((resolve) => {
setTimeout(() => {
resolve(2);
}, 1000);
});
const promise3 = Promise.resolve(3);
Promise.all([promise1, promise2, promise3])
.then((result) => console.log(result))
.catch((e) => console.error(e));
//
[1,2,3]
모든 promise 이행 후 각 결과와 값 return
promise 실패시에도 값 반환
const promise1 = new Promise((resolve) => {
setTimeout(() => {
resolve(1);
}, 3000);
});
const promise2 = new Promise((resolve) => {
setTimeout(() => {
resolve(2);
}, 1000);
});
const promise3 = Promise.reject(new Error("err"));
Promise.allSettled([promise1, promise2, promise3]).then((results) => {
results.forEach((result) => {
console.log(result);
});
});
//return
{status: 'fulfilled', value: 1}
{status: 'fulfilled', value: 2}
{status: 'rejected', reason: Error: err
-계속 추가 예정-