Saspi 4

Ult Combo's Front-end/JS mini-course

  • Funções - Function Declarations (FD) e Function Expressions (NFE, IIFE)
  • Contextos de execução, entendendo a keyword this
  • Escopo de variáveis, hoisting, escopo léxico, modo estrito
  • Coerções de tipo, algoritmos internos (ToBoolean, ToNumber, Abstract Equality Comparison)
  • Modelos de execução síncrono e assíncrono
  • Delegação de eventos / Ajax
  • Namespacing e Patterns de instanciação de objetos (Construtores, Object.create, factory, singleton)
  • Bibliotecas e níveis de abstração

JavaScript

  • Linguagem de programação interpretada
  • Tipamento dinâmico
  • Escopo léxico
  • Closures
  • Herança prototípica
  • Funções de primeira classe
  • Forte orientação a objetos

Nomenclatura


Inicialmente chamada de Mocha, então LiveScript, a linguagem foi finalmente renomeada para JavaScript.

Isto se deve possivelmente a parceria entre Netscape e Sun Microsystems da época. Muitos também categorizam isto como uma jogada de marketing da Netscape, vendo que Java era a linguagem web quente do momento.

Até hoje o nome JavaScript causa confusão para quem está começando, pois JavaScript não possui relação com Java.

ECMAScript

É o nome da linguagem de programação padronizada pela Ecma International na especificação ECMA-262.

JavaScript moderno é uma implementação do ECMAScript, logo segue a especificação ECMA-262.

Note que JavaScript surgiu antes do ECMAScript.

Momento histórico

JavaScript nasceu na empresa Netscape, desenvolvido por Brendan Eich.
Seu sucesso foi tão grande que a Microsoft desenvolveu um dialeto compatível, chamado JScript (para não infringir marcas registradas).
A Netscape então submeteu o JavaScript para a Ecma International para consideração como um padrão industrial.
Desta forma, surgiu a especificação ECMA-262, que se refere a linguagem como ECMAScript.

Momento histórico

Assim sendo, pode-se dizer que ECMAScript é o JavaScript padronizado.


Todas implementações recentes do JavaScript seguem o padrão ECMA-262.

(embora certas implementações tenham algumas adições)

Logo, ECMAScript e JavaScript são quase que sinônimos, sendo ES a especificação e JS a implementação.


Note que também surgiram outras implementações derivadas do ECMAScript, como ActionScript por exemplo.

Edições do ECMA-262


  • Edition 3 (1999) - Suportada por basicamente todos browsers lançados na última década que suportam JavaScript.
  • Edition 4 - Abandonada.
  • Edition 5 (2009) - Amplamente suportada por browsers modernos (IE a partir da versão 9).
  • Edition 5.1 (2011) - Corrige alguns erros e ambiguidades do documento da Edição 5, nada novo acrescentado.
  • ES6 / ES.next / ES Harmony - Rascunhos da(s) próxima(s) especificação(ões).

Edições do ECMA-262


Este minicurso é focado na especificação oficial mais recente (Edição 5.1). Existem também shims para uma boa parte dos recursos introduzidos nesta edição, caso seja necessária compatibilidade com browsers mais antigos.

Ult JS #1 - Intro

By Fabrício Matté

Ult JS #1 - Intro

  • 1,079