ECMAScript 2015 (ES6) 이상
Node.js는 최신 버전의 V8을 기반으로 구축되었습니다. 이 엔진의 최신 릴리스를 최신 상태로 유지함으로써 JavaScript ECMA-262 사양의 새로운 기능이 Node.js 개발자에게 적시에 제공될 뿐만 아니라 지속적인 성능 및 안정성 개선을 보장합니다.
모든 ECMAScript 2015 (ES6) 기능은 shipping
, staged
및 in progress
기능의 세 그룹으로 나뉩니다.
- V8이 안정적이라고 간주하는 모든
shipping
기능은Node.js에서 기본적으로 활성화
되어 있으며 런타임 플래그가 필요하지 않습니다
. - V8 팀에서 안정적이라고 간주하지 않는 거의 완료된 기능인
Staged
기능에는 런타임 플래그--harmony
가 필요합니다. In progress
기능은 해당 Harmony 플래그를 통해 개별적으로 활성화할 수 있지만 테스트 목적이 아닌 한 사용하지 않는 것이 좋습니다. 참고: 이러한 플래그는 V8에서 노출되며 더 이상 사용되지 않는다는 알림 없이 잠재적으로 변경될 수 있습니다.
어떤 기능이 기본적으로 Node.js 버전과 함께 제공되나요?
웹사이트 node.green은 kangax의 compat-table을 기반으로 다양한 버전의 Node.js에서 지원되는 ECMAScript 기능에 대한 훌륭한 개요를 제공합니다.
어떤 기능이 진행 중인가요?
새로운 기능이 지속적으로 V8 엔진에 추가되고 있습니다. 일반적으로 말해서, 타이밍은 알 수 없지만 향후 Node.js 릴리스에 적용될 것으로 예상됩니다.
--v8-options
인수를 통해 grep하여 각 Node.js 릴리스에서 사용할 수 있는 모든 진행 중인 기능을 나열할 수 있습니다. 이러한 기능은 V8의 불완전하고 잠재적으로 손상된 기능이므로 사용에 대한 책임은 본인에게 있음을 유의하십시오.
node --v8-options | grep "in progress"
--harmony 플래그를 활용하도록 인프라를 설정했습니다. 제거해야 하나요?
Node.js에서 --harmony
플래그의 현재 동작은 staged
기능만 활성화하는 것입니다. 결국 이제 --es_staging
과 동의어가 됩니다. 위에서 언급했듯이 이는 아직 안정적으로 간주되지 않은 완료된 기능입니다. 특히 프로덕션 환경에서 안전하게 사용하려면 V8 및 결과적으로 Node.js에서 기본적으로 제공될 때까지 이 런타임 플래그를 제거하는 것을 고려하십시오. 이 플래그를 활성화된 상태로 유지하는 경우 V8이 표준을 더 면밀히 따르도록 의미 체계를 변경하면 추가 Node.js 업그레이드로 인해 코드가 손상될 수 있습니다.
Node.js 특정 버전에 포함된 V8 버전을 어떻게 찾을 수 있나요?
Node.js는 process
전역 객체를 통해 특정 바이너리와 함께 제공되는 모든 종속성 및 해당 버전을 나열하는 간단한 방법을 제공합니다. V8 엔진의 경우 터미널에 다음을 입력하여 버전을 검색합니다.
node -p process.versions.v8