close

ECMAScript

Ir para a navegação Ir para a pesquisa
ECMAScript
Brendan Eich
https://ecma-international.org/
Informações gerais
Extensões comuns isso é
Paradigma Multiparadigma : prototipagem , funcional , imperativo
Apareceu em 1 de janeiro de 1997 (25 anos, 9 meses e 15 dias)
Desenhado por Brendan Eich , Ecma Internacional
implementações SpiderMonkey , V8 , ActionScript , JScript , QtScript , InScript
influenciado por Self , HyperTalk , AWK , C , Perl , Python , Java , Scheme
ECMAScript
Crystal source.png
desenvolvedor
Sun Microsystems ,
Ecma International

ECMA-262 , ECMA-290 ,
ECMA-327 , ECMA-357 ,
[ http://www.ecma-international.org/publications/standards/Ecma-404.htm

ECMA-404
]
Informações gerais
extensão de arquivo .es
tipo mime application/ecmascript
lançamento inicial 1 de junho de 1997 (25 anos, 4 meses e 15 dias)
Última versão 7ª edição
1 de junho de 2016 (6 anos, 4 meses e 15 dias) [ 1 ]
tipo de formato linguagem de script
estendido de JavaScript e JScript
formato aberto ?

ECMAScript é uma especificação de linguagem de programação publicada pela Ecma International . O desenvolvimento começou em 1996 e foi baseado na popular linguagem JavaScript proposta como padrão pela Netscape Communications Corporation . Atualmente, é aceito como o padrão ISO/IEC 22275:2018.

ECMAScript define uma linguagem tipada dinamicamente inspirada em Java e outras linguagens de estilo C. Ele suporta alguns recursos de programação orientada a objetos por meio de objetos baseados em protótipos e pseudoclasses.

A maioria dos navegadores da Internet inclui uma implementação do padrão ECMAScript, bem como acesso ao Document Object Model para manipulação de páginas da web. JavaScript é implementado na maioria dos navegadores, o Internet Explorer da Microsoft usa JScript . O navegador Opera tinha seu próprio interpretador ECMAScript com extensões para suportar alguns recursos JavaScript e JScript, atualmente o Opera é baseado no Chromium (e usa seu interpretador). Cada navegador tem suas próprias extensões para o padrão ECMAScript, mas qualquer código que esteja em conformidade com o padrão deve funcionar em todos eles.

ActionScript , para Adobe Flash , também é baseado no padrão ECMAScript, com aprimoramentos que permitem mover, criar e analisar objetos dinamicamente enquanto o filme está em execução.

Desde o lançamento do padrão ECMAScript 1 em junho de 1997, existem as versões 2, 3 e 5, que é a mais usada atualmente (a versão 4 foi abandonada [ 2 ] ). Em junho de 2015, a versão ECMAScript 6 foi fechada e publicada. [ 3 ]

História

ECMAScript é uma especificação padrão para uma linguagem desenvolvida por Brendan Eich , empregada pela Netscape ; foi inicialmente chamado de Mocha, depois LiveScript e, finalmente, Javascript. [ 4 ] Em dezembro de 1995, a Sun Microsystems e a Netscape anunciaram o JavaScript em uma coletiva de imprensa. [ 5 ] Em março de 1996, o Netscape Navigator 2.0 foi lançado com suporte para JavaScript.

Devido ao grande sucesso do JavaScript como linguagem de script do lado do cliente para páginas da Web, a Microsoft desenvolveu um dialeto compatível da linguagem, chamado JScript , para evitar problemas legais com a marca registrada. JScript adicionou novos métodos para datas, para aliviar os problemas do ano 2000 ( Y2K ), causados ​​em parte por métodos Javascript baseados em classes Java Date. [ 6 ] JScript foi incluído no Internet Explorer 3.0, lançado em agosto de 1996.

A Netscape submeteu o rascunho do JavaScript à Ecma International para padronização e para que eles trabalhassem em sua especificação ECMA-262, que começou em novembro de 1996. [ 7 ] A primeira edição do ECMA-262 foi adotada pela assembléia geral da Ecma em junho de 1997. Vários edições da linguagem padrão foram publicadas desde então. O nome "ECMAScript" foi um compromisso entre as organizações envolvidas na padronização da linguagem, especialmente entre Netscape e Microsoft, que disputavam o domínio das primeiras sessões padrão. Eich comentou que "ECMAScript sempre foi uma marca indesejada, que soava como uma doença de pele". [ 8 ]

Embora ambas as especificações JavaScript e JScript pretendam ser compatíveis com ECMAScript, elas também fornecem recursos adicionais, não descritos nas especificações ECMA. [ citação necessária ]


Versões

Existem onze versões do ECMA-262 publicadas. O trabalho na versão 11 do padrão foi concluído em junho de 2020. [ 9 ]

Allen Wirfs-Brock: ECMA-262, Editor de Projetos, 6ª Edição e Brian Terlson: ECMA-262, Editor de Projetos, 7ª a 10ª edições [ 10 ]

Edição Data de publicação Alterações da edição anterior editor
1 Junho de 1997 Primeira edição Guy L. Steele, Jr.
dois Junho de 1998 Alterações editoriais para manter toda a especificação alinhada com a norma internacional ISO/IEC 16262 Mike Cowlishaw
3 Dezembro de 1999 Adicionadas expressões regulares, melhor manipulação de strings, nova manipulação de instruções, manipulação de exceção try/catch, definição mais rigorosa de erros, formatação para saída numérica e outras melhorias. Mike Cowlishaw
4 Abandonado A quarta edição foi abandonada devido a divergências políticas quanto à complexidade do idioma. Muitos recursos propostos para a quarta edição foram completamente abandonados; alguns foram propostos para a edição ECMAScript Harmony.
5 Dezembro de 2009 Adiciona o modo estrito, um subconjunto destinado a fornecer melhor verificação de erros e evitar construtores propensos a erros. Ele esclarece várias ambiguidades na terceira edição e refina o comportamento das implementações do "mundo real" que diferem consistentemente dessa especificação. Ele adiciona alguns novos recursos, como getters e setters, uma biblioteca para suporte a JSON e uma reflexão mais completa sobre as propriedades do objeto. [ 11 ] Pratap Lakshman , Allen Wirfs-Brock
5.1 Junho de 2011 Esta edição 5.1 da Norma ECMAScript está totalmente alinhada com a terceira edição da norma internacional ISO/IEC 16262:2011. Pratap Lakshman, Allen Wirfs-Brock
6 Junho de 2015 [ 12 ] A sexta edição adiciona mudanças significativas de sintaxe para escrever aplicativos complexos, incluindo classes e módulos, definindo-os semanticamente nos mesmos termos de modo estrito da edição ECMAScript 5. Outros novos recursos incluem iteradores para / de loops, geradores e expressões de estilo gerador. Python , funções de endereço, dados binários, coleções (mapas, conjuntos, mapas fracos) e proxies (metaprogramação para objetos virtuais e wrappers). Sendo a primeira especificação "ECMAScript Harmony", também é conhecida como "ES6 Harmony". Allen Wirfs-Brock
7 Junho de 2016 A sétima edição foi uma mera atualização para a versão 6. Ela adiciona o método Array.prototype.includes() e o operador exponencial (**). Brian Terlson
8 Junho de 2017 A 8ª edição, oficialmente conhecida como ECMAScript 2017, foi finalizada em junho de 2017. [11] Inclui construtores async/await, que funcionam usando geradores e promessas. Brian Terlson
9 Junho de 2018 A 9ª edição, oficialmente conhecida como ECMAScript 2018, inclui operadores rest/spread para variáveis ​​(três pontos: ...identificador), iteração assíncrona,Promise.prototype.finally() Brian Terlson
10 Janeiro de 2019 A 10ª edição, oficialmente conhecida como ECMAScript 2019, introduziu Array.flat(), Array.flatMap(), String.trimStart(), String.trimEnd(), erros opcionais no bloco catch, Object.fromEntries(),Symbol.description Mathias Bynens
onze Junho de 2020 Veja a 11ª Edição – ECMAScript 2020 Jordan HarbandKevin Smith
12 Junho de 2021 Veja o 12º ECMAScript® 2021

Em junho de 2004, a Ecma International publicou o padrão ECMA-357, definindo uma extensão para ECMAScript, conhecido como ECMAScript for XML (E4X). A Ecma também definiu um "Perfil Compacto" para ECMAScript – conhecido como ES-CP, ou ECMA 327 – que foi projetado para dispositivos com recursos limitados, mas foi descartado e retirado em 2015. [ 13 ]

11ª edição – ECMAScript 2020

A 11ª edição, ou ECMAScript 2020, foi lançada em junho de 2020. Além de novas funcionalidades, esta versão inclui o tipo primitivo BigIntpara inteiros de tamanho arbitrário primitivo, o operador de coalescência nulo , encadeamento opcional (em inglês, encadeamento opcional ) e o objeto globalThis.

BigInits são criados com o construtor BigIntou com a sintaxe 10n, onde "n" é colocado após o número literal. BigInts permite a representação e manipulação de inteiros maiores que Number.MAX_SAFE_INTEGER, enquanto os números são representados por um valor IEEE 754 de 64 bits de precisão dupla. As funções integradas Mathnão são suportadas pelo BigInits; por exemplo, o poder de BigInts deve ser feito com o operador **em vez de Math.pow.

O operador de união nulo, ??, retorna seu operando do lado direito quando seu lado esquerdo é nullou undefined. Isso contrasta com o operador ||, que retornará "string"para todos os valores "falsy", como os abaixo:

Indefinido ?? "string" // -> "string"
nulo ?? "cadeia" // "cadeia"
falso?? "string" // -> falso
NaN?? "string" // -> NaN

O encadeamento opcional permite acessar propriedades aninhadas de um objeto sem ter uma verificação AND em cada nível. Um exemplo é const zipcode = person?.address?.zipcode. Se alguma das propriedades não estiver presente, zipcodeserá undefined.

Com globalThis você pode escrever código que funcione em contextos de janela e não janela sem a necessidade de verificações extras.

ES.NEXT

ES.Next é um nome dinâmico para se referir a qualquer próxima versão que esteja sendo desenvolvida. Os recursos do ES.Next são mais corretamente conhecidos como propostas, porque, por definição, a especificação ainda não foi finalizada.


Veja também

Referências

  1. Padrão ECMA-262: Especificação de linguagem ECMAScript® 2016 . Recuperado em 13 de janeiro de 2017.
  2. Eich, Brendan (13 de agosto de 2008). Harmonia ECMAScript . Recuperado em 22 de julho de 2015 . 
  3. campusMVP (19 de junho de 2015). "ECMAScript 6 agora é um padrão fechado" . Recuperado em 22 de julho de 2015 . 
  4. Krill, Paul (23 de junho de 2008). Criador de JavaScript pondera passado e futuro | Mundo dos Desenvolvedores» . InfoMundo . Recuperado em 31 de outubro de 2013 . 
  5. ^ "Press Release" . Web.archive.org. Arquivado a partir do original em 16 de setembro de 2007 . Recuperado em 31 de outubro de 2013 . 
  6. ^ "Atualizações do roteiro de Brendan: popularidade" . weblogs.mozillazine.org . Arquivado do original em 17 de maio de 2008. 
  7. ^ "Press Release" . Web.archive.org. Arquivado a partir do original em 3 de dezembro de 1998 . Recuperado em 31 de outubro de 2013 . 
  8. "Haverá um sufixo de arquivo sugerido para es4?" . Mail.mozilla.org. 3 de outubro de 2006. Arquivado a partir do original em 21 de junho de 2020 . Recuperado em 31 de outubro de 2013 . 
  9. ^ [1] Arquivado em 12/04/2015 no Wayback Machine .. EMCAScript. Recuperado em 2015-06-19.
  10. ^ "ECMA-260 10ª Edição" . 
  11. ^ "Mudanças para JavaScript, Parte 1: EcmaScript 5" . YouTube. 18 de maio de 2009 . Recuperado em 31 de outubro de 2013 . 
  12. ^ "É oficial: ECMAScript 6 é aprovado - InfoWorld" . www.infoworld.com (em inglês) . Recuperado em 20 de outubro de 2015 . 
  13. 2015-03-24 Notas da Reunião . END discuta. Consulte também Padrões retirados do Ecma . ECMA.

Links externos