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


162

안정된 새로운 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

9
"이 질문 (및 답변)이 현재 Node.js 개발자가 사용할 수있는 ES 6 기능에 대한 포괄적 인 요약이되기를 희망합니다." -기회는 그것이 단순히 다른 조직들과 마찬가지로 구식이 아닌 혼란이 될 것입니다. 1) 자기 답과 2) 다른 답을 큐레이터로 정리하지 않는 한. 그 일을 할 준비가 되었다면 블로그에서하는 것이 더 적절할 것입니다.
Stephen C

2
또는 io.js (훨씬 더 최신 V8 버전과 함께 제공됨)로 전환하고 io.js 페이지ES6을 주시하십시오 .
Fabrício Matté

2
선별 된 ES6 호환성 표 : kangax.github.io/compat-table/es6
Fabrício Matté

2
@JonathanLonowski 흥미 롭습니다. 노드 0.12에 관한 문제 / PR을 찾을 수 없다는 것이 이상합니다. 편집 : 문제를 제기했습니다 .
Fabrício Matté 2019

1
@RobertRossmann-누구나 블로그를 가질 수 있습니다. 나는 당신의 목표를 의심하지 않습니다. 누군가 (즉, >> you <<)가 >> effort <<를 넣어서 작동하지 않으면 이것이 효과가 없을 것이라고 생각합니다.
Stephen C

답변:


250

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

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

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

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


8
이것은 정확히 내가 찾고 싶었던 종류의 대답입니다-깨끗하고 문서 / 예제에 대한 링크가 있습니다! --harmony깃발 아래에 기능을 나열하기위한 추가 포인트 . :)
Robert Rossmann

2
문자열 템플릿이 --harmony있습니까? 백틱 ${varname}문자열 구문 에서와 같이 ?
Sukima

5
@Sukima Node v0.12는 템플릿 문자열 이나 --harmony플래그 또는 템플릿 문자열을 지원하지 않습니다 . 그러나 iojs 플래그가 없어도 지원합니다.
alexpods

1
nodejs에이 문서가 어디에 있습니까? 매우 유용합니다.
저스틴 하마드

1
@JonRed 어쩌면 상수가 아닌 다른 이유로 달리기에 실패했을 수도 있습니다. 나는 그것을 시도하고 내 실행은 꽤 잘 작동합니다.
alexpods

4

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 이상의 기능을 찾을 수 있는 이슈 트래커를 유지합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.