클래스 정적 초기화 블록
새로운 클래스 정적 초기화 블록 문법은 개발자가 특정 클래스 정의에 대해 한 번 실행되어야 할 코드를 수집하고 이를 한 곳에 모을 수 있게 합니다. 아래는 암호화 랜덤 숫자 생성기가 정적 블록을 사용하여 class MyPRNG
정의가 평가될 때 한 번 엔트로피 풀을 초기화하는 예제입니다.
새로운 클래스 정적 초기화 블록 문법은 개발자가 특정 클래스 정의에 대해 한 번 실행되어야 할 코드를 수집하고 이를 한 곳에 모을 수 있게 합니다. 아래는 암호화 랜덤 숫자 생성기가 정적 블록을 사용하여 class MyPRNG
정의가 평가될 때 한 번 엔트로피 풀을 초기화하는 예제입니다.
JS-BigInt-Integration 기능은 JavaScript와 WebAssembly 간에 64비트 정수를 쉽게 전달할 수 있도록 합니다. 이 포스트는 그것이 무엇을 의미하며, 왜 유용한지를 설명합니다. 여기에는 개발자를 위해 더 간단해지고, 코드 실행 속도가 빨라지며, 빌드 시간도 단축되는 이점들이 포함됩니다.
Atomics.wait
와 Atomics.notify
는 뮤텍스 및 기타 동기화 수단을 구현하는 데 유용한 저수준 동기화 프리미티브입니다. 하지만 Atomics.wait
는 블로킹이기 때문에 메인 스레드에서 호출할 수 없습니다(시도 시 TypeError
가 발생합니다).
자바스크립트는 복합 할당 연산자의 범위를 지원하여 프로그래머가 이진 연산과 할당을 간결하게 표현할 수 있게 합니다. 현재는 수학적 또는 비트 연산만 지원되고 있습니다.
JavaScript는 이제 '매치 인덱스(match indices)'라는 새 정규 표현식 기능을 갖추게 되었습니다. JavaScript 코드에서 예약어와 일치하는 유효하지 않은 변수 이름을 찾아 변수 이름 아래에 캐럿(caret)과 '밑줄'을 출력하고 싶다고 상상해보세요:
JavaScript에서 문자열을 다뤄본 적이 있다면, String#replace
메서드에 대해 들어본 적이 있을 가능성이 큽니다. String.prototype.replace(searchValue, replacement)
는 지정한 매개변수에 따라 일부 일치 항목이 교체된 문자열을 반환합니다:
최상위 await
는 개발자가 비동기 함수 외부에서 await
키워드를 사용할 수 있도록 합니다. 이는 큰 비동기 함수처럼 동작하며, 이를 import
하는 다른 모듈들이 본문의 평가를 시작하기 전에 대기하게 합니다.
널 병합 제안 (??
)은 기본값을 처리하기 위한 새로운 단축 평가 연산자를 추가합니다.
여러분은 이미 단축 평가 연산자인 &&
와 ||
를 알고 있을 가능성이 높습니다. 이 연산자들은 “true값”과 “false값”을 처리합니다. 예를 들어 lhs && rhs
라는 코드 샘플을 생각해 봅시다. lhs
(좌측 피연산자)가 false값이면, 표현식은 lhs
를 평가합니다. 그렇지 않으면 rhs
(우측 피연산자)를 평가합니다. 반대로 lhs || rhs
라는 코드 샘플의 경우에는, lhs
가 true값이면 표현식은 lhs
를 평가합니다. 그렇지 않으면 rhs
를 평가합니다.
JavaScript에서 긴 속성 접근 체인은 오류를 일으키기 쉽습니다. 이 중 하나라도 null
또는 undefined
(“nullish” 값으로 알려짐)일 수 있기 때문입니다. 각 단계에서 속성 존재 여부를 확인하는 것은 쉽게 깊이 중첩된 if
-문 구조 또는 속성 접근 체인을 복제하는 긴 if
-조건으로 바뀔 수 있습니다:
웹 브라우저에서 사용하기 위한 JavaScript를 작성한 적이 있다면, 전역 this
에 접근하기 위해 window
를 사용한 적이 있을 것입니다. Node.js에서는 global
을 사용했을지도 모릅니다. 두 환경에서 모두 작동해야 하는 코드를 작성한 경우, 사용할 수 있는 것을 감지하여 이를 사용했을 것입니다. 그러나 지원하려는 환경과 사용 사례가 늘어남에 따라 체크해야 할 식별자의 목록이 증가하면서 금방 복잡해집니다: