Sobre JavaScript

O que é JavaScript?

JavaScript® (frequentemente abreviado como JS) é uma linguagem de programação leve, interpretada e orientada a objetos com funções de primeira classe, conhecida como a linguagem de scripting para páginas Web, mas também utilizada em muitos ambientes fora dos navegadores. Ela é uma linguagem de scripting baseada em protótipos, multi-paradigma e dinâmica, suportando os estilos orientado a objetos, imperativo e funcional.

JavaScript roda no client side da web, o que pode ser usado para projetar / programar o comportamento de uma página web a partir da ocorrência de um evento. JavaScript é uma linguagem fácil de se aprender mas que também é poderosa, sendo amplamente utilizada para controlar o comportamento de páginas web.

Diferente do que é dito popularmente, JavaScript não é "Java Interpretado". Em poucas palavras, JavaScript é uma linguagem de scripting dinâmica que suporta a construção de objetos baseada em protótipos. A sintaxe básica é intencionalmente similar tanto a Java quanto a C++, com o intuito de diminuir o número de conceitos exigidos para se aprender a linguagem. Estruturas da linguagem, como if, for, while, switch e try ... catch funcionam da mesma maneira do que nestas linguagens (ou quase.)

JavaScript pode funcionar tanto como uma linguagem procedural como uma linguagem orientada a objetos. Objetos são criados programaticamente em JavaScript, onde métodos e propriedades são anexados a objetos vazios em tempo de execução, ao invés das definições sintáticas de classe normalmente encontradas em linguagens compiladas como C++ e Java. Assim que um objeto é construído, ele pode ser usado como um esquema (ou protótipo) para se criar objetos similares.

As capacidades dinâmicas de JavaScript incluem a construção de objetos em tempo de execução, listas variáveis de parâmetros, variáveis de funções, criação dinâmica de scripts (através da função eval), introspecção de objetos (através da estrutura for ... in), e recuperação de código fonte (programas escritos em JavaScript podem descompilar funções de volta a seus textos originais).

Para uma discussão mais aprofundada sobre programação em JavaScript, siga os links da seção Recursos para JavaScript.

Que implementações de JavaScript estão disponíveis?

O projeto Mozilla oferece duas implementações de JavaScript. A implementação original de JavaScript foi criada por Brendan Eich enquanto trabalhava na Netscape, e desde então foi atualizada para conformar-se ao padrão ECMA-262 Edition 5 e suas versões mais recentes. Esta engine, de codinome SpiderMonkey, foi implementada em C/C++. A engine Rhino, criada predominantemente por Norris Boyd (também na Netscape) é uma implementação de JavaScript escrita em Java. Assim como SpiderMonkey, Rhino é compátivel com o padrão ECMA-262 Edition 5.

Muitas optimizações significantes no tempo de execução, como TraceMonkey (Firefox 3.5), JägerMonkey (Firefox 4) e IonMonkey, foram adicionadas à engine de JavaScript SpiderMonkey com o passar do tempo. Há sempre trabalho sendo feito para melhorar a performance de execução do JavaScript.

Além das implementações citadas anteriormente, existem ainda outras engines populares de JavaScript como:-

  • A V8 da Google, que é utilizada pelo navegador Google Chrome e as versões mais recentes do navegador Opera. Ela também é usada como a engine do Node.js.
  • O JavaScriptCore (SquirrelFish/Nitro) utilizado em alguns navegadores WebKit como Apple Safari.
  • Carakan, usado em versões antigas do navegador Opera.
  • A engine Chakra utilizada pelo Internet Explorer (apesar de que a linguagem implementada é formalmente chamada de "JScript" para evitar problemas de trademark).

Cada engine de JavaScript da Mozilla expõe uma API pública que os desenvolvedores de aplicativos podem utilizar para integrar JavaScript em seus softwares. O ambiente host mais utilizado para JavaScript é o navegador web. Navegadores web tipicamente usam a API pública para criar objetos de host responsáveis pelo trabalho de refletir o DOM no JavaScript.

Outra aplicação comum para JavaScript é usa-lo como uma linguagem de scripting para o server side (da Web). Um servidor web de JavaScript expõe objetos de host que representam uma solicitação HTTP e objetos de resposta, que são então manipulados por um programa em JavaScript que gera páginas web dinamicamente. Node.js é um exemplo popular deste tipo de uso.

Recursos para JavaScript

SpiderMonkey

Informações pertinentes à implementação de JavaScript em C/C++ criada pela Mozilla (SpiderMonkey), incluindo como integra-la em aplicativos.

Rhino

Informações pertinentes à implementação de JavaScript em Java (Rhino).

Recursos da linguagem

Indicações para os padrões publicados de JavaScript.

Uma reintrodução ao JavaScript

O guia de JavaScript e a referência para JavaScript.

JavaScript® é uma marca ou marca registrada pertencente à Oracle nos E.U.A. e outros países.