ECMAScript 2020
ECMAScript 2020
이번 내용의 주요한 점은 아마도 동적 import, 새로운 연산자(??), 객체의 탐색이라고 해야하나 선택적 연결 연산자.. 그리고 globalThis 가 될것이다.
String.matchAll()
정규식에서의 g 플래그 사용시 매치되는 문자열과 세부 정보가 포함되어 나온다. 매칭된 문자열, 매치되는 되는 문자들 등등 정보가 포함된다. 매치되는 문자정보는 정규식에서 () 안의 표현식에 매치되는 문자정보가 나온다. 또한 매치되는 문자열의 시작 인덱스, 주어진 문자열, 정규식 그룹정보 등이 나온다.. 약간 이해는 했는데 말로 표현이 잘 안된다..
Nullish 통합 연산자(??)
|| 또는 && 연산자는 null, undefined, 0, "", NaN 값도 falsy 로 취급한다. 하지만 ?? 연산자는 null, undefined 만 falsy 로 취급한다.
선택적 연결 연산자(?.)
객체의 깊이가 깊어질 수록 최하위의 객체 값을 구하려면, 최상위부터 내려가며 키 값의 유무를 판별해야 한다. 그러면 구문도 복잡해지고, 반복되는 내용도 생긴다. 선택적 연결 연산자는 이러한 부분에서 유용한 기술이라고 할수 있겠다. 꼭 객체에서만 사용가능한건 아닌듯 하다.. 함수인지 아닌지도 구분할 수도 있고.. 그냥 연산자 앞의 내용이 undefined 가 아니면 연산자 뒤의 내용을 수행한다고 볼 수 있겠다..
BigInt
Number.MAX_SAFE_INTEGER 보다 큰 정수를 안정적으로 표현할 수 있게 해주는 내장 객체. 값을 출력하려면 toString() 을 써야한다. 그럼 문자열로 출력만 되나 보다...
for~of
열거가능한 객체에 한하여 반복문을 수행한다. 배열, 문자열 등 인덱스가 있는 객체? 에서 사용 가능한거 같다.
Promise.allSettled()
Promise.all() 과 비슷하게 주어진 Promise 들이 모두 수행할때 까지 기다리는것은 똑같지만, all() 은 하나의 Promise 들이 거부될 경우, 모든 Promise 들이 거부되지만, allSettled() 는 모든 Promise 들이 거부 또는 수행되고 나서 결과값과 상태를 반환한다.
dynamic import
import() 함수 형태로 하여 동적으로 모듈을 참조할 수 있다. import() 구문은 Promise 기반으로 then() 참조 성공, catch() 참조 실패, finally() 구문도 사용할 수 있다. MDN 에서는 한줄 설명만 추가되어 있다.
globalThis
각 브라우저나, 개발 환경에 따라 전역객체 보통 Window 객체를 가져오는 방법이 달랐는데, 통일하기 위한 전역객체.
댓글
댓글 쓰기