Anotações da palestra do Jaydson Gomes no evento 16 Encontro Locaweb de 2014 chamada O Futuro do Javascript.
História
- Brendan Eich (CTO Mozilla) inventou o Javascript. Diz ele que foi em 10 dias.
- O javascript foi criado em 1995 e pode ser conhecido por vários nomes: Mocha, LiveScript, Javascript e ECMAScript.
- O Javascritp está baseado no ECMAScript, seguindo a especificação ECMA-262
- Em 1999 apareceu a versão ECMA-3 (ES3). Ele incluiu algumas efeatures como expressões regulares, try/catch e outras.
- Em 2008 a ES4 a versão foi abandonada. Por isso pulamos ela.
- Mas em 2009 houve várias melhores na linguagem, aí surgiu a versão ES5
- Tabela de compatibilidade da versão ES5. @kangax https://kangax.github.io/es5-compat-table/
- CoffeScript é interessante porque ajuda na evolução da linguagem e da comunidade.
- A versão ES6 do Javascript sai em Dezembro deste ano, com um bando de features bacanas. Há uma certa discussão sobre algumas novas features, como o Douglas Crockford não concordam com algumas features.
Arrows functions
- É introduzido um novo operador que é um atalho para a criação de funções: =>
- Lexical this binding
- Not newable
- Can’t change this
- Always anonymous
Classes
- Houve muita discussão por causa da inserção de classes no Javascript.
- Para quem programa com Orientação a Objetos do modo clássico, já está acostumado a utilizar classes e vai conseguir trabalhar sem muitos problemas.
- Isso não muda nada na linguagem. Vira uma opção a mais de uso.
Templates Strings
- Multiline strings
- Basic string formatting
- HTML escaping
- Localization of strings:
Parametros
- Rest
- Spread
- Default
Block Scope
- Let
- Const
Modulos
- Módulos tem sido discutido a muito tempo no Javascript
Promise
-
Uma promise representa um valor não necessariamente conhecido no seu tempo de criação.
-
Promises permitem associas handlers de sucesso ou erro de uma ação assíncrona
-
Compilador onde você escreve em ES5 e ele compila para ES6. O próprio Google usa isso nos seus projetos. (https://github.com/google/traceur-compiler)