ES2020
ES2020
?? 연산자
- 해당 변수의 값이 null이나 undefined일 때 defualt value를 줄 수 있게 해주는 연산자
- 사용이유
- or 연산자(||)로도 default value를 줄 수 있긴 하다.
- 하지만 or 연산자는 논리연산자이기 때문에
만약 위의 코드에서 name의 값이 0이나 false여도 뒤의 값이 주어지게 된다. - name같이 이름에 대한 경우면 신경 안 쓸 수도 있겠지만,
point나 score같은 경우면 문제가 될 수 있다.
- 사용 예시
let name="";
console.log("your name is",name ?? "test"); //출력 : your name is test
Optional Chaining
- 사용이유
- 객체에서 존재하지 않는 property를 부를 때 생기는 에러를 방지
- 사용 예시
const test = {name : "who"};
console.log(test.homeAddress.city); //에러 발생
console.log(test?.homeAddress?.city); //출력 : undefined
console.log(test?.homeAddress?.city ?? "Optional Chaining Test") ;//출력 : Optional Chaining Test
PadStart & PadEnd
- 문자열에 padding을 집어 넣는다.
- 사용 예시
//의도 : 10미만보다 작은 숫자는 앞에 0을 붙이고, 마지막에 초 단위를 붙이려고 함
let seconds = 3;
//seconds 길이가 2보다 작으면 앞에 0 추가, 3보다 작으면 뒤에 초 단위 추가
seconds = String(seconds).padStart(2, "0").padEnd(3, "초");
//출력 : 03초
console.log(seconds);
- 주의사항
- padStart와 padEnd는 문자열의 함수이기 때문에 숫자인 경우에는 문자열로 형변환을 해줘야한다.
- padStart와 padEnd는 값을 바로 리턴하기 때문에
출력할 때 바로 사용하거나 아니면 따로 변수에 저장해서 사용해야 한다.
trim, trimStart, trimEnd
- 빈 문자열를 자르는 메소드
- 사용 예시
let testTrim = " test trim method "; //앞뒤로 세칸씩 띄움
console.log(testTrim.trimStart()); //출력 : test trim method , 맨앞의 빈 공간 자름
console.log(testTrim.trimEnd()); //출력 : test trim method, 맨뒤의 빈 공간 자름
console.log(testTrim.trim()); //출력 : test trim method, 양쪽의 빈 공간 자름
- 주의사항 문자열 중간에 있는 공간들은 잘리지 않는다.
Object.메소드명
- Object.entries(targetName)
- Object.values(targetName)
- Object.fromEntries(arrays)
- 사용 예시
const testObject = {name : "who", homeAddress : "where"};
Object.entries(testObject); //출력 : (2) [Array(2), Array(2)], 가지고 있는 데이터를 배열로 반환한다.
Object.values(testObject); //출력 : ["who", "where"], 가지고 있는 값만을 반환한다.
const testFromEntires = Object.fromEntries([["name","lee"], ["homeAddress", "seoul"]]); //배열을 통해서 object를 만든다. [] 안에 배열들을 나열한다.
testFromEntires //출력 : {name: "lee", homeAddress: "seoul"}
Array.Flat(n)
- 깊이의 값을 n만큼 값을 추출한다.
- 사용 예시
const flatTest = [1, [2, 2, [7], [3, 3, [6, 4, [3, 5]], [8,9]]], [0]];
console.log(flatTest.flat()); //출력 : (6) [1, 2, 2, Array(1), Array(4), 0]
console.log(flatTest.flat(2)); //출력 : (9) [1, 2, 2, 7, 3, 3, Array(3), Array(2), 0]
console.log(flatTest.flat(3)); //출력 : (12) [1, 2, 2, 7, 3, 3, 6, 4, Array(2), 8, 9, 0]
Array.sort(compareFunction)
- 배열을 정렬한다.
- 사용 예시
const flatTest = [1, [2, 2, [7], [3, 3, [6, 4, [3, 5]], [8,9]]], [0]];
const sortTest = flatTest.flat(4).sort();
sortTest //출력 : (13) [0, 1, 2, 2, 3, 3, 3, 4, 5, 6, 7, 8, 9]
Promise.allSettled
- Promise.all()과의 차이
- Promise.all()은 포함된 모든 Promise들 중에서 하나라도 실패하면 모두 실패지만,
- Promise.allSettled()는 포함된 Promise들 중에서
실패한 Promise가 있어도 모든 status 값들을 반환한다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.