Descrição da tag JavaScript

JavaScript (não confundir com Java) é uma linguagem de alto nível, dinâmica, multiparadigmática, orientada a objetos, baseada em protótipos e fracamente tipada, usada para scripts de cliente e de servidor. Seu principal uso é renderizar e manipular páginas da web. Use esta tag para perguntas sobre o ECMAScript e seus vários dialetos / implementações (excluindo o ActionScript e o Google-Apps-Script).

JavaScript (dialeto ECMAScript) é uma linguagem baseada em protótipos de alto nível, dinâmica, multi-paradigmática, orientada a objetos e de tipo fraco, tradicionalmente usada para criar scripts do lado do cliente em navegadores da web. O JavaScript também pode ser executado fora do navegador usando a infraestrutura, como , ou . Apesar do nome, não está relacionado à linguagem de programação Java e tem apenas uma semelhança externa.

O JavaScript funciona em quase todos os sistemas operacionais e o mecanismo está incluído nos principais navegadores da web. Desenvolvido em 1995 por Brendan Eich, da Netscape Communications , era originalmente chamado de LiveScript, mas foi renomeado para JavaScript por causa da amizade da Netscape com a Sun Microsystems (os criadores de Java ) na época.

Também estão disponíveis mecanismos ou intérpretes de JavaScript autônomos, incluindo:

  • O Mozilla , o primeiro mecanismo de JavaScript já escrito, é atualmente usado no Mozilla Firefox.
  • Google JavaScript Chrome engine usado no Google Chrome e no Chromium.
  • , um interpretador de nuvem / servidor que fornece controle "macro" programático sobre serviços e documentos do Google Apps.
  • , construído com base no V8, uma plataforma que permite escrever aplicativos do lado do servidor em JavaScript.
  • O Windows inclui o , uma versão javascript do Windows Script Host .
  • , um ramo do JScript, desenvolvido pela Microsoft e usado em seu .
  • A Mozilla também oferece , uma implementação de JavaScript embutida em Java, normalmente incorporada em aplicativos Java para fornecer scripts aos usuários finais.
  • (exceto o projeto Chromium) implementa o mecanismo .
  • (originalmente derivado do HyperTalk ) é agora um dialeto do ECMAScript e usa muitas APIs do ECMAScript.
  • Duktape Embeddable , um motor portátil ECMAScript C com uma pequena quantidade de memória.
  • Servidor baseado em Wakanda , IDE e V8 suportando JavaScript do lado do servidor
  • MeteorJS ; O aplicativo Meteor é uma mistura de JavaScript do lado do cliente que é executado dentro do navegador da Web ou do aplicativo móvel , JavaScript do lado do servidor, que é executado no servidor Meteor dentro do contêiner Node.js. (de acordo com a documentação do MeteorJS )

A Mozilla Developer Network contém documentação JavaScript de alta qualidade.

O JavaScript é normalmente usado para gerenciar o modelo de objeto de documento (DOM) e as folhas de estilo em cascata (CSS) em um navegador. Ele permite que você crie scripts de interface do usuário, animação, automação, validação no lado do cliente e muito mais.

Com o advento recente de plataformas como o Node.js , o JavaScript agora pode ser usado para gravar aplicativos de servidor. Além disso, ele também é usado em ambientes não baseados na Web, como documentos PDF, navegadores específicos do site, widgets da área de trabalho etc.

Nomenclatura

Embora tenha sido desenvolvido sob o nome Mocha , essa linguagem foi oficialmente chamada LiveScript quando foi lançada pela primeira vez nas versões beta do Netscape Navigator 2.0 em setembro de 1995, mas foi renomeada para JavaScript quando foi implantada na versão 2.0B3 do navegador Netscape.

A mudança de nome de LiveScript para JavaScript coincidiu aproximadamente com o Netscape, que adicionou suporte à tecnologia Java em seu navegador da Web Netscape Navigator . A escolha final do nome causou confusão, dando a impressão de que a linguagem era um subproduto da linguagem de programação Java, e a Netscape escolheu um truque de marketing para fornecer o JavaScript em cache do que era então uma nova linguagem de programação web.

As pessoas costumam usar o termo JavaScript informalmente. Idioma e termo originado do Netscape . ECMAScript , JavaScript e JScript são termos que são facilmente confundidos.

O ECMAScript foi projetado para padronizar o Netscape JavaScript e a Microsoft, desenvolvidos independentemente pelo JScript . A referência canônica é a especificação de linguagem ECMAScript® 2015 . Embora o JavaScript e o JScript sejam compatíveis com o ECMAScript, eles também fornecem funções adicionais (e outros desvios ) que não são descritas nas especificações do ECMA. Outras implementações do ECMAScript também existem.

Hoje, as diferenças para quem usa JavaScript são insignificantes; As pessoas geralmente não distinguem entre JavaScript e JScript do ECMAScript.

Versão ECMAScript

A maioria dos navegadores modernos implementam o JavaScript com base na especificação do ECMAScript 6, embora alguns não consigam implementar alguns recursos do ES6. No entanto, navegadores mais antigos, como o Internet Explorer 8, implementaram a especificação ECMAScript 3, que, entre outras coisas, não possui recursos como Function.prototype.bind e até mesmo JSON.parse .

A versão atual do ECMAScript é o ECMAScript 9, conhecido como ECMAScript 2018, que foi concluído em junho de 2018.


Ao fazer uma pergunta sobre javascript, você deve:

  1. Depure seu código JavaScript (consulte Creativebloq , MDN , Google e MSDN ).
  2. Isole o código do problema e reproduza-o em um snippet de código do Stack Overflow ou em um ambiente on-line externo, como JSFiddle , JS Bin ou PasteBin (não se esqueça de incluir também o código na própria pergunta).
  3. Se uma biblioteca ou infraestrutura for usada, marque a questão com as tags apropriadas: para jQuery, para prototype, para MooTools, etc. No entanto, se a infraestrutura não for usada ou não for necessária, não inclua essas tags.
  4. Se o problema estiver no lado do cliente, indique em qual navegador ocorreu o problema com o código e quais mensagens de erro, se houver, foram emitidas pelo navegador. Use as Ferramentas do desenvolvedor para o seu navegador (consulte "Ferramentas úteis" abaixo) para ver essas mensagens. Se a pergunta estiver relacionada ao navegador, use as tags do ,