Uma nova versão estável do Node.js (0.12) foi lançada recentemente com o mecanismo JavaScript v8 do Google atualizado, v3.28.73 .
Quais recursos do ECMAScript 6 estão presentes no Node.js, sem o uso do --harmony
sinalizador?
Verifiquei vários sites que alegam listar os recursos do ES 6, mas todos parecem desatualizados - com destaque, esta tabela ( atualização: agora atualizada com o status atual do Node.js a partir de 0,12 ), porque vários dos recursos estão listados como exigindo a --harmony
sinalização enquanto eu encontrava alguns deles ativados por padrão (mapas, conjuntos, símbolos, para citar alguns). Atualização : As tabelas específicas do nó foram disponibilizadas desde então
Além disso, tentar pesquisar essas informações no Google exclusivamente para o mecanismo da v8 fornece informações muito atualizadas - a versão atual da v8 é 4.2. * , Que está bem à frente do que o Node.js usa.
Minha esperança é que esta pergunta (e suas respostas) se torne um resumo abrangente sobre quais recursos do ES 6 estão agora disponíveis para os desenvolvedores do Node.js.
Recursos do ES 6 ativados no Node.j 0.12 Atualmente, conheço:
- Mapas, Conjuntos / WeakMaps, WeakSets
- Símbolos
- Object.observe
- Promessas
- Número
- .isInteger
- .isSafeInteger
- .isNaN
- .EPSILON
- .MIN_SAFE_INTEGER
- .MAX_SAFE_INTEGER
- Matemática
- .clz32
- .imul
- .placa
- .log10
- .log2
- .log1p
- .expm1
- .cosh
- .sinh
- .tanh
- .acosh
- .asinh
- .atanh
- .trunc
- .fround
- .cbrt
- .hypot
fonte
Respostas:
Recursos sem
--harmony
bandeira:Eu acho que é tudo o que temos sem
--harmony
bandeira.Recursos com
--harmony
bandeira:--harmony_arrow_functions
sinalizador em contraste comio.js
)strict mode
Métodos de string:
includes()
especificação real do ES6)Proxy (atrás da
--harmony-proxies
bandeira)Eu acho que isso é tudo. Talvez se eu esqueci alguma coisa - adicionarei mais tarde à lista.
fonte
--harmony
bandeira :).--harmony
? Como na${varname}
sintaxe da string de tick anterior ?--harmony
flag, nem sem ele. Mas osiojs
suporta sem a necessidade de nenhuma sinalização.Os recursos do ES6 chegam ao Nó em fases. O nó usa a V8 do Google como o mecanismo JavaScript. Um recurso suportado no Node significa que ele primeiro deve ser implementado na V8 e, em seguida, a equipe do Node deve incorporá-lo no Node.js.
A equipe do Google lança uma nova versão do V8 aproximadamente a cada seis semanas e, em seguida, cabe à equipe do Node usá-lo.
As listas com curadoria manual de recursos de idioma são boas, mas podem ficar desatualizadas rapidamente. O Nó 0.12 não está mais no fluxo, mas a lista com curadoria normalmente manual se torna obsoleta assim que uma nova versão do Nó é lançada.
Aqui estão duas maneiras alternativas de verificar quais recursos uma versão do Node suporta, sem depender de uma lista estática. Para leituras adicionais e exemplos mais detalhados de como usá-los, você pode verificar "Como verificar se o Node.js suporta o recurso de idioma do ES 6"
# 1 Fácil - tabela de compatibilidade
Uma lista gerada dinamicamente que se baseia em pequenos testes para confirmar a presença de um recurso de idioma permanece melhor atualizada. Uma dessas listas populares é kangax.github.io/compat-table/es6/. Estamos interessados apenas nos recursos do Node, para que você possa usar
http://node.green
que aproveita os mesmos dados que o site kangax.
# 2 Hard-backtrack versão V8
O nó usa o mecanismo V8, portanto, determinar qual versão do V8 está incluída no nó indica quais recursos de idioma do ES6 são suportados. Você pode descobrir qual versão do V8 foi incluída no Node
node -p process.versions.v8
.Em seguida, usando os recursos do projeto V8 do Google, você pode descobrir quais recursos são implementados em cada versão. O projeto V8 mantém um rastreador de problemas em que você pode encontrar o ES6 + além dos recursos marcados com o rótulo de harmonia .
fonte