[javascript] Node.js 0.12에서 사용 가능한 ECMAScript 6 기능

안정된 새로운 Node.js (0.12) 릴리스는 최근에 업그레이드 된 Google v8 JavaScript 엔진 v3.28.73 과 함께 제공되었습니다 .

--harmony플래그 를 사용하지 않고 Node.js에 현재 어떤 ECMAScript 6 기능이 있습니까?

ES 6 기능을 나열한다고 주장하는 여러 사이트를 확인했지만 모든 기능이 최신 상태가 아닌 것으로 보입니다. 이 표 ( 업데이트 : 현재 Node.js 상태가 0.12로 업데이트 됨 )는 여러 기능이 다음과 같이 나열되어 있기 때문입니다. --harmony플래그가 필요 하지만 그 중 일부는 기본적으로 활성화되어 있습니다 (Maps, Sets, Symbols 등). 업데이트 : 노드 특정 테이블 이 사용 가능해졌습니다.

또한 v8 엔진을 위해이 정보를 순수하게 구글로 업데이트하면 최신 정보가 제공 됩니다. 현재 v8 릴리스는 4.2. * 이며 이는 Node.js가 사용하는 것보다 훨씬 앞서 있습니다.

이 질문과 답변이 Node.js 개발자가 사용할 수있는 ES 6 기능에 대한 포괄적 인 요약이되기를 바랍니다.

Node.js 0.12에서 활성화 된 ES 6 기능

  • 지도, 세트 / 약점, 약점
  • 기호
  • Object.observe
  • 약속
  • 번호
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • .EPSILON
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • 수학
    • .clz32
    • .imul
    • .기호
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .곤봉
    • .sinh
    • .tanh
    • .acosh
    • .asinh
    • .atanh
    • .trunc
    • .fround
    • .cbrt
    • .hypot


답변

--harmony플래그가 없는 기능 :

나는 그것이 우리가 --harmony깃발 없이 가지고있는 전부라고 생각합니다 .

--harmony플래그가있는 기능 :

나는 그것이 전부라고 생각합니다. 어쩌면 내가 잊어 버린 경우-나중에 목록에 추가 할 것입니다.


답변

ES6 기능은 단계적으로 노드로 흘러갑니다. Node는 Google V8을 JavaScript 엔진으로 사용합니다. Node에서 지원되는 기능은 V8에서 먼저 구현 한 다음 Node 팀이 Node.js에 통합해야한다는 것을 의미합니다.

Google 팀은 대략 6 주마다 V8의 새 버전을 릴리스 한 다음이를 사용하는 것은 Node 팀의 책임입니다.

수동으로 선별 된 언어 기능 목록은 훌륭하지만 빨리 구식이 될 수 있습니다. Node 0.12는 더 이상 유동적이지 않지만 일반적으로 새 버전의 Node가 출시되는 즉시 수동으로 선별 된 목록이 더 이상 사용되지 않습니다.

정적 목록에 의존하지 않고 노드 버전이 지원하는 기능을 확인하는 두 가지 대체 방법이 있습니다. 이에 대한 자세한 내용과 이에 대한 자세한 예는 “Node.js가 ES 6 언어 기능을 지원하는지 확인하는 방법”을 확인하십시오.

# 1 쉬운-호환성 표

언어 기능이 있는지 확인하기 위해 작은 테스트를 사용하는 동적으로 생성 된 목록은 최신 상태를 유지합니다. 그러한 인기있는 목록 중 하나는 kangax.github.io/compat-table/es6/입니다. 우리는 노드 기능에만 관심이 있으므로 사용할 수 있습니다

http://node.green

kangax 사이트와 동일한 데이터를 활용합니다.

# 2 하드-백 트랙 V8 버전

Node는 V8 엔진을 사용하므로 Node에 포함 된 V8 버전을 확인하면 어떤 ES6 언어 기능이 지원되는지 알려줍니다. Node와 함께 번들로 제공되는 V8 버전을 찾을 수 있습니다 node -p process.versions.v8.

$ node -p process.versions.v8
4.6.85.31

그런 다음 Google V8 프로젝트 리소스를 사용하여 각 버전에 구현 된 기능을 찾을 수 있습니다. V8 프로젝트 는 하모니 레이블이 표시된 ES6 이상의 기능을 찾을 수 있는 이슈 트래커를 유지합니다 .


답변