Skip to main content

Utilize esta tag quando a pergunta se refere a algum recurso, informação ou problema relacionado exclusivamente à linguagem JavaScript (não confundir com Java). JavaScript é uma implementação do ECMAScript, é uma linguagem interpretada, dinamicamente tipada, orientada a objetos e com herança proto-típica. É usada para scripting client-side, todavia pode ser executada em aplicações desktop ou server-side utilizando ferramentas como Node.js.

JavaScript é uma linguagem orientada a objetos baseada em protótipos, com tipagem dinâmica, fracamente tipada. É normalmente usada para criação de scripts em navegadores web, podendo também ser utilizada em aplicações desktop ou server-side. Apesar do nome, não tem relação com a linguagem de programação Java e guarda apenas semelhanças superficiais.

Ela roda em quase todos os sistemas operacionais e um motor (engine) JavaScript está incluído em quase todos os navegadores mainstream. Desenvolvida em 1995 por Brendan Eich, na Netscape Communications, foi originalmente chamada LiveScript, mas foi logo renomeada para JavaScript devido à relação de amizade do Netscape com a Sun Microsystems na época.

A especificação que descreve o funcionamento do JavaScript é o ECMAScript (padrão ECMA-262). Está atualmente em sua 11ª edição, publicada em junho de 2020.

Engines ou interpretadores autônomos JavaScript estão disponíveis, tais como:

  • Mozilla SpiderMonkey(em inglês) foi o primeiro engine de JavaScript, atualmente usado no Mozilla Firefox.

  • V8(em inglês), engine de JavaScript do Google, é usado no Google Chrome, (uma plataforma que permite que os aplicativos do lado do servidor serem escritos em JavaScript) e outros projetos.

  • O Windows inclui uma variante JavaScript no seu Windows Script Host, o .

  • A Fundação Mozilla também oferece Rhino, uma implementação do JavaScript construído em .

  • WebKit (exceto para o projeto Chromium) implementa o engine JavaScriptCore(em inglês) .

  • Nashorn (Oracle e OpenJDK) — implementação da Java Specification Request (JSR) 223, que permite a execução de JavaScript de dentro de aplicações Java, fundindo a sintaxe JS com a API Java.

A Mozilla Developer Network (MDN) contém boa documentação sobre JavaScript(en).

JavaScript é normalmente usado para manipular o Document Object Model(en) (DOM) e Cascading Style Sheets (CSS) dentro do navegador, oferecendo scripting para a interface de usuário, animação, automação, validação do lado do cliente e muito mais.

No entanto, com o recente surgimento de runtimes, como Node.js(en), JavaScript agora pode ser usado para escrever aplicações server-side.

Nomenclatura

Muitas vezes as pessoas usam o termo JavaScript informalmente. A linguagem e o termo se originou na Netscape. ECMAScript, JavaScript e JScript são termos que são fáceis de confundir.

ECMAScript foi desenvolvido como uma padronização da Netscape JavaScript e do Microsoft [JScript](en). A referência canônica é a ECMA-262 - Especificação da Linguagem ECMAScript(en). Enquanto JavaScript e JScript procuram ser compatíveis com ECMAScript, elas também fornecem recursos adicionais (e outras variações(em inglês)) não descritas nas especificações ECMA. Outras implementações de ECMAScript também existem.

As diferenças para aqueles que usam JavaScript são desprezíveis, as pessoas geralmente não distinguem as variações de JavaScript e JScript para o ECMAScript.


Ao fazer uma pergunta JavaScript, é ideal:

  1. Isolar o código problemático e reproduzi-lo a um ambiente on-line, tais como jsFiddle(en), JS Bin(en) ou usando a ferramenta para correr código no post (o snippet), mas lembre-se de incluir o código no seu post original.

  2. Se uma biblioteca ou framework é utilizado, marque a questão com as tags apropriadas: para jQuery, para Prototype, para MooTools, para Node.js, e assim por diante. No entanto, se um framework não é usado ou necessário, não inclua essas tags.

  3. Mencione qual navegador o código está com problemas, e que mensagens de erro, se houver, foram apresentados pelo navegador. Se a questão é específica do navegador, use tags de , , , , etc.

  4. Marque a questão com ou apenas se você está perguntando sobre um assunto que diz respeito à combinação de um desses com JavaScript e só poderá ser respondida com informações específicas sobre qualquer um desses assuntos.


Recursos de Aprendizagem

Onde aprender mais sobre JavaScript.

Livros

On-line

Linguagem de Código (usado para realce de sintaxe): lang-js