Você está na página 1de 12

avaScript

Origem: Wikipédia, a enciclopédia livre.


Nota: Não confundir com Java (linguagem de programação).
Esta página ou secção cita fontes fiáveis e independentes, mas que não cobrem todo o conteúdo, o que compromete a verificabilidade(desde n
2010). Por favor, insira mais referências no texto. Material sem fontes poderá ser removido.
—Encontre fontes: Google (notícias, livros e acadêmico)

JavaScript

Logotipo não-oficial da JSConf EU 2011.

Paradigma Multi-paradigma: com base em protótipo


funcional
imperativo
scripts

Surgido em 1995

Última versão 1.8.5 (22 de março de 2011[1])

Criado por Brendan Eich

Estilo de Dinâmica, fraca e implícita


tipagem:

Dialetos: ISO/IEC C++ 1998


ISO/IEC C++ 2003

Influenciada por Self, C, Lisp, Scheme, Perl, Python, Java

Influenciou JScript, ActionScript, JScript


.NET, Objective-J, TIScript

Extensão do .js
arquivo:

Índice
[esconder]

 1História
 2Características
o 2.1Imperativa e Estruturada
o 2.2Dinâmica
 2.2.1Tipagem dinâmica
 2.2.2Baseada em objetos
 2.2.3Avaliação em tempo de execução
o 2.3Funcional
 2.3.1Funções de primeira classe
 2.3.2Funções aninhadas
 2.3.3Fechamentos
o 2.4Baseada em Protótipos
 2.4.1Protótipos
 2.4.2Funções e métodos
 3Uso em páginas Web
o 3.1Exemplo
o 3.2Compatibilidade
o 3.3Acessibilidade
o 3.4Segurança
 3.4.1Vulnerabilidades inter-sites
 4Exemplos de scripts
o 4.1Scripts Simples
o 4.2Comentários
o 4.3Funções
o 4.4Hierarquia do objeto
o 4.5Números Perfeitos
 5Versão
 6Bibliografia
 7Referências
 8Ver também
 9Ligações externas
JavaScript é uma linguagem de programação interpretada.[2] Foi originalmente
implementada como parte dos navegadores web para que scriptspudessem ser
executados do lado do cliente e interagissem com o usuário sem a necessidade deste
script passar pelo servidor, controlando o navegador, realizando comunicação assíncrona
e alterando o conteúdo do documento exibido.
É atualmente a principal linguagem para programação client-side em navegadores web.
Começa também a ser bastante utilizada do lado do servidor através de ambientes como
o node.js. Foi concebida para ser uma linguagem script com orientação a objetos baseada
em protótipos, tipagem fraca e dinâmica e funções de primeira classe. Possui suporte
à programação funcional e apresenta recursos como fechamentos e funções de alta ordem
comumente indisponíveis em linguagens populares como Java e C++. É a linguagem de
programação mais utilizada do mundo.[carece de fontes]
É baseada em ECMAScript padronizada pela Ecma international nas
especificações ECMA-262[3] e ISO/IEC 16262.

História[editar | editar código-fonte]


JavaScript foi originalmente desenvolvido por Brendan Eich quando trabalhou
na Netscape sob o nome de Mocha, posteriormente teve seu nome mudado
para LiveScript e por fim JavaScript. LiveScript foi o nome oficial da linguagem quando foi
lançada pela primeira vez na versão beta do navegador Netscape 2.0 em setembro de
1995, mas teve seu nome mudado em um anúncio conjunto com a Sun Microsystems em
dezembro de 1995 quando foi implementado no navegador Netscape versão 2.0B3.
A mudança de nome de LiveScript para JavaScript coincidiu com a época em que a
Netscape adicionou suporte à tecnologia Java em seu navegador (Applets). A escolha final
do nome causou confusão dando a impressão de que a linguagem foi baseada em java,
sendo que tal escolha foi caracterizada por muitos como uma estratégia de marketing da
Netscape para aproveitar a popularidade do recém-lançado Java.
JavaScript rapidamente adquiriu ampla aceitação como linguagem de script client-side de
páginas web. Como consequência, a Microsoft desenvolveu um dialeto compatível com a
linguagem de nome JScript para evitar problemas de marca registrada. JScript adicionou
novos métodos para consertar métodos do JavaScript relacionados a data que
apresentavam problemas[carece de fontes]. JScript foi incluído no Internet Explorer 3.0, liberado
em Agosto de 1996. JavaScript e Jscript são tão similares que os dois termos são
comumente usados de forma intercambiável. A Microsoft entretanto declara muitas
características nas quais JScript não conforma com a especificação ECMA.
Em novembro de 1996 a Netscape anunciou que tinha submetido JavaScript para Ecma
internacional como candidato a padrão industrial e o trabalho subsequente resultou na
versão padronizada chamada ECMAScript.
JavaScript tem se transformado na linguagem de programação mais popular da web.
Inicialmente, no entanto, muitos profissionais denegriram a linguagem pois ela tinha como
alvo principal o público leigo. Com o advento do Ajax, JavaScript teve sua popularidade de
volta e recebeu mais atenção profissional. O resultado foi a proliferação de frameworks e
bibliotecas, práticas de programação melhoradas e o aumento no uso do JavaScript fora
do ambiente de navegadores, bem como o uso de plataformas de JavaScript server-side.[4]
Em janeiro de 2009 o projeto CommonJS foi fundado com o objetivo de especificar uma
biblioteca padrão para desenvolvimento JavaScript fora do navegador.

Características[editar | editar código-fonte]


As seguintes características são comuns a todas as implementações conformantes com o
ECMAScript.
Imperativa e Estruturada[editar | editar código-fonte]
JavaScript suporta os elementos de sintaxe de programação estruturada da linguagem C
(por exemplo, if , while , switch ). Uma exceção é a questão do escopo: o escopo em
blocos ao estilo do C não é suportado, em seu lugar JavaScript utiliza escopo a nível de
função. JavaScript 1.7, entretanto, suporta escopo a nível de bloco através do
comando let . Como C, JavaScript faz distinção entre expressões e comandos. Uma
diferença sintática do C é que a quebra de linha termina automaticamente o comando,
sendo o ponto-e-vírgula opcional ao fim do comando.
Dinâmica[editar | editar código-fonte]
Tipagem dinâmica[editar | editar código-fonte]
Como na maioria das linguagens de script, tipos são associados com valores, não com
variáveis. Por exemplo, a variável x poderia ser associada a um número e mais tarde
associada a uma string. JavaScript suporta várias formas de testar o tipo de um objeto,
incluindo duck typing.
Baseada em objetos[editar | editar código-fonte]
JavaScript é quase inteiramente baseada em objetos. Objetos JavaScript são arrays
associativos, aumentados com protótipos. Os nomes da propriedade de um objeto são
strings: obj.x = 10 e obj["x"] = 10 são equivalentes, o ponto neste exemplo é
apenas sintático. Propriedades e seus valores podem ser adicionadas, mudadas, ou
deletadas em tempo de execução. A maioria das propriedades de um objeto (e aqueles em
sua cadeia de herança via protótipo) pode ser enumerada usando-se uma estrutura de
repetição for...in . JavaScript possui um pequeno número de objetos padrão da
linguagem como window e document.
Avaliação em tempo de execução[editar | editar código-fonte]
JavaScript inclui a função eval que consegue executar em tempo de execução comandos
da linguagem que estejam escritos em uma string.
Funcional[editar | editar código-fonte]
Funções de primeira classe[editar | editar código-fonte]
No JavaScript as funções são de primeira classe, isto é, são objetos que possuem
propriedades e métodos, e podem ser passados como argumentos, serem atribuídos a
variáveis ou retornados como qualquer outro objeto.
Funções aninhadas[editar | editar código-fonte]
Funções 'internas' ou 'aninhadas' são funções definidas dentro de outras funções. São
criadas cada vez que a função que as contém (externa) é invocada. Além disso, o escopo
da função externa, incluindo constantes, variáveis locais e valores de argumento, se
transforma parte do estado interno de cada objeto criado a partir da função interna, mesmo
depois que a execução da função interna é concluída.
Fechamentos[editar | editar código-fonte]
JavaScript permite que funções aninhadas sejam criadas com o escopo léxico no
momento de sua definição e possui o operador () para invocá-las em outro momento.
Essa combinação de código que pode ser executado fora do escopo no qual foi definido,
com seu próprio escopo durante a execução, é denominada, dentro da ciência da
computação, fechamento.
Baseada em Protótipos[editar | editar código-fonte]
Protótipos[editar | editar código-fonte]
JavaScript usa protótipos em vez de classes para o mecanismo herança. É possível
simular muitas características de orientação a objetos baseada em classes com protótipos.
Funções e métodos[editar | editar código-fonte]
Diferente de muitas linguagens orientadas a objetos, não há distinção entre a definição de
uma função e a definição de um método no JavaScript. A distinção ocorre durante a
chamada da função; a função pode ser chamada como um método. Quando uma função é
chamada como método de um objeto, a keyword this da função é associada àquele
objeto via tal invocação.

Uso em páginas Web[editar | editar código-fonte]


O uso primário de JavaScript é escrever funções que são embarcadas ou incluídas em
páginas HTML e que interagem com o Modelo de Objeto de Documentos (DOM) da
página. Alguns exemplos deste uso são:

 abrir uma nova janela (dialog) com controle programático sobre seu tamanho, posição
e atributos;
 validar valores de um formulário para garantir que são aceitáveis antes de serem
enviados ao servidor;
 mudar imagens à medida que o mouse se movimenta sob elas.
Um recurso de interface útil basada em janela, é um tipo de janela secundária (“filha”) da
tela principal, ou janela principal, para solicitar ou exibir ao usuário determinadas
informações complementares, semelhante a “caixa de diálogo” (dialog).
Existem dois tipos de associação entre uma janela de diálogo e a janela principal à qual
está associada: "forma modal" (showModalDialog), quando a abertura da janela de diálogo
flexível sobreposta a janela principal sem a necessidade de recarregar a página principal
após o uso do modal, chamada de Lightbox, bloqueando a interação com janela principal a
esmaecendo/escurecendo à fundo até que o diálogo seja encerrado; ou "forma não
modal", em que pode haver interação concomitante nas duas janelas (principal e diálogo)
sem bloqueio da principal, O caso mais comum é do diálogo modal.[5][6]
Pelo fato do código JavaScript rodar localmente no navegador do usuário, e não em um
servidor remoto, o navegador pode responder a tais ações rapidamente, fazendo uma
aplicação mais responsiva. Além disso, o código JavaScript pode detectar ações de
usuário que o HTML sozinho não pode, tais como teclas pressionadas individualmente.
Aplicações como Gmail tomam vantagem disso: muito da lógica da interface do usuário é
escrita em JavaScript, e o JavaScript envia requisições de informação, tais como o
conteúdo de um correio eletrônico, para o servidor. A tendência mais ampla de
programação em Ajax explora de maneira similar este ponto forte. Uma JavaScript engine
(também conhecida como interpretador JavaScript ou uma implementação JavaScript)
interpreta código fonte JavaScript e o executa de forma adequada. A primeira
implementação JavaScript foi criada por Brendan Eich na Netscape Communications
Corporation, para o Navegador Netscape. A implementação, nomeada SpiderMonkey, é
implementada em C e vem sendo atualizada para conformar com a edição 3 do ECMA-
262. A implementação Rhino, criada primariamente por Norris Boyd (ex-empregado da
Netscape; agora no Google) é uma implementação de JavaScript em Java. Rhino,
como SpiderMonkey, é conformante com a terceira edição do ECMA-262.
Por ser o JavaScript a única linguagem que a maioria dos navegadores populares
suportam, tem se tornado uma linguagem alvo para muitos frameworks em outras
linguagens, a despeito do fato de não ter sido planejado para tal. Não obstante as
limitações de desempenho inerente à sua natureza dinâmica, a crescente velocidade das
implementações JavaScript tem feito da mesma uma prática linguagem intermediária.
Exemplo[editar | editar código-fonte]
Um exemplo minimalista de uma página conforme os padrões web (utilizando a
sintaxe HTML5) que contém JavaScript pode ser representado pelo seguinte código:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<title>Wikipédia</title>
<script>
window.onload = function () {

document.getElementById("hello").addEventListener("click", function ()
{
alert("Bem-vindo à Wikipédia!");
}, false);
};
</script>
</head>
<body>
<noscript>Seu navegador não suporta JavaScript ou ele está
desabilitado.</noscript>
<button id="hello">Dizer "Olá"</button>
</body>
</html>

No script acima, vimos que existe uma tag chamada <noscript>, ela está neste código
HTML porque é um meio de acessibilidade com o cliente, fazendo com que seu texto seja
renderizado pelo navegador quando o JavaScript estiver desativado.
Compatibilidade[editar | editar código-fonte]
Já que JavaScript roda em ambientes variáveis, uma parte importante do teste e
depuração de seu código consiste na verificação de compatibilidade entre navegadores.
As interfaces DOM para a manipulação de páginas web não são parte do padrão ECMA,
ou do próprio JavaScript. Oficialmente, são definidas por um esforço de padronização
da W3C; na prática, implementações de navegadores diferem do padrão de uma para as
outras, e nem todos navegadores executam JavaScript.
Para lidar com essas diferenças, programadores JavaScript com frequência tentam
escrever códigos que conformam com o padrão comum a maioria dos navegadores; não
sendo possível isso, tentam escrever de maneira ad-hoc um código que verifique a
presença de certos recursos e que se comporte de maneira adequada caso tais recursos
não estejam disponíveis. Em alguns casos, dois navegadores podem ambos
implementarem uma funcionalidade com comportamentos diferentes, e programadores
podem achar prático detectar qual navegador está rodando e mudar o comportamento de
seus scripts para se adequar a isso. Programadores podem também usar bibliotecas ou
ferramentas que abstraem tais diferenças entre navegadores.
Além disso, scripts podem não funcionar para alguns usuários. Por exemplo, um usuário
pode:

 Usar um navegador antigo ou raro com suporte DOM incompleto ou incomum.


 Usar um navegador de um PDA ou telefone móvel que não está apto a executar
JavaScript.
 Ter a execução do JavaScript desabilitada por normas de segurança.
Para suportar tais usuários, programadores web tentam criar páginas que sejam robustas
a agentes que não suportem o JavaScript da página. Em particular, uma página deve
funcionar a despeito das funcionalidades extras que um JavaScript provê. Uma abordagem
alternativa que muitos acham preferível é a página se desenvolvida por primeiro a partir de
tecnologias básicas que funcionem em todos os navegadores, e então aprimorá-la para os
usuários que possuam JavaScript.
Acessibilidade[editar | editar código-fonte]
Assumindo que o usuário não tenha desabilitado sua execução, pode-se utilizar JavaScript
do lado cliente para melhorar a experiência de um usuário com deficiência física ou visual.
Leitores de tela utilizados por pessoas cegas ou com visão parcial podem detectar a
presença de JavaScript e dessa forma acessar e ler o DOM da página depois que seus
scripts foram executados. Nestes casos recomenda-se que o HTML seja o mais conciso,
navegável e rico semanticamente possível, tendo a página scripts ou não. Não se
recomenda que o código JavaScript de uma página seja totalmente dependente do
eventos provenientes do mouse já que usuários que não conseguem ou optam por não
usar o mouse não estarão aptos a colher os benefícios de tal código. Da mesma forma,
embora hyperlinks e webforms possam ser navegados e operados do teclado, JavaScript
voltado para acessibilidade não deve requerer um teclado para acessar tais eventos.
JavaScript conta com eventos independentes do dispositivo de usuário tais
como onfocus e onchange que são mais recomendados na maioria dos casos.
Não se recomenda utilizar JavaScript de um jeito que seja confuso ou desorientador para
qualquer usuário da internet. Por exemplo, usar JavaScript para alterar ou desabilitar a
funcionalidade normal de um navegador, tal como mudar a forma com que o botão direito
ou o evento de atualização funcionam, deve ser evitado. Da mesma forma, eventos de
interrupção que o usuário pode não estar ciente reduzem a sensação de controle do
usuário, assim como scripts inesperados que mudam o conteúdo da página.
Frequentemente o processo de fazer páginas web complexas tão acessíveis quanto
possível se transforma em um problema não trivial, onde certas decisões são assunto de
debate e opinião. Entretanto, tecnologias assistivas estão constantemente evoluindo e
novas recomendações e informações relevantes vem sendo continuamente publicadas na
web.
Segurança[editar | editar código-fonte]
JavaScript e o DOM representam uma potencialidade para programadores maliciosos
escreverem scripts para rodarem em um cliente via web. Navegadores são projetados para
conter este risco de duas maneiras. A primeira é que scripts são rodados em
uma sandbox na qual só podem executar ações relacionadas à internet, não tarefas de
programação de propósito geral como criar arquivos. A segunda é que scripts são
limitados pela regra da mesma origem: scripts de um website não têm acesso a
informações como nomes de usuário, senhas ou cookies enviados de outro site. A maioria
dos bugs em JavaScript relacionados à segurança são brechas de uma das regras.
Vulnerabilidades inter-sites[editar | editar código-fonte]
Um problema comum relacionado à segurança é a escrita de scripts inter-sites, ou XSS,
uma violação da regra da mesma origem. Tais vulnerabilidades ocorrem quando um
atacante está apto a causar em um site alvo, como um site de banco, a inclusão de um
script malicioso na página web apresentada à vítima. O script neste exemplo pode então
acessar a aplicação do banco com privilégios da vítima, potencialmente revelando
informações secretas ou transferindo dinheiro sem a autorização da vítima.
Alguns navegadores incluem proteção parcial contra ataques XSS refletidos, no qual o
atacante fornece uma URL incluindo o script malicioso. No entanto, mesmo usuários
destes sites estão vulneráveis a outros ataques XSS, como aqueles onde o código
malicioso é guardado em um banco de dados. Apenas o correto desenho de aplicações
web no servidor pode prevenir inteiramente ataques XSS.
Vulnerabilidades XSS também podem ocorrer por causa de erros de implementação por
parte de programadores de navegadores.
Outra vulnerabilidade inter-sites é a falsificação de requisição inter-sites ou CSRF. No
CSRF, o código no site de um atacante faz com que o navegador da vítima tome ações
não desejadas pelo usuário em um site alvo (como transferência de dinheiro em um
banco). Ela funciona porque, se o site alvo conta apenas com cookies para autenticar
requisições, então requisições iniciadas pelo código no site do atacante levarão as
mesmas credenciais legítimas de login que as requisições iniciadas pelo usuário. Em geral
a solução para CSRF é requerer um valor de autenticação em um campo webform
escondido, e não somente nos cookies, para autenticar qualquer requisição que possa ter
efeitos duradouros. Verificar o cabeçalho do HTTP Referrer também pode ajudar.
"Sequestro JavaScript" é um tipo de ataque CSRF no qual uma tag <script> no site do
atacante explora uma página no lado da vítima que retorna informação privada tal
como JSON ou JavaScript. Soluções possíveis incluem requerer um token de autenticação
nos parâmetros POST e GET para qualquer resposta que retorne um JSON privado
(mesmo que não tenha efeitos colaterais); utilizar POST e nunca GET para requisições
que retornem um JSON privado; e modificar a resposta de forma que não possa ser usada
via uma tag <script> (através, por exemplo, de um wrapping de um JSON em um
comentário JavaScript).

Exemplos de scripts[editar | editar código-fonte]


Scripts Simples[editar | editar código-fonte]

// Mostra um alerta de Confirmar e Cancelar.


if ( confirm( 'Escolha "Ok" ou "Cancelar" para ver a mensagem
correspondente.' ) ) {
alert( 'Você apertou o botão "OK"' ); // mostra um alerta para
resposta "OK"
} else {
alert( 'Você apertou o botão "Cancelar"' ); // mostra um alerta para
resposta "Cancelar"
}

Comentários[editar | editar código-fonte]


JavaScript permite utilizar comentários de duas formas:

 Comentários de única linha;


 Comentários de múltiplas linhas.
Exemplos de comentários:

// Este comentário ocupa uma única linha

/* Já este comentário
é mais longo e utiliza
várias linhas */

Funções[editar | editar código-fonte]


Criando uma função simples:

function nomeDaFuncao( /*parâmetros*/ ) {


/* código que será executado */

return/*Valor retornado*/;
}

Hierarquia do objeto[editar | editar código-fonte]

//Construtor
//Construtor
function Exemplo() {
this.propriedade = 'Isso é uma propriedade.',
this.metodo = function() {
return 'Isso é um metódo';
}
}
var objeto = new Exemplo(); //Instância do construtor "Exemplo"

//Alerta os respectivos textos na tela


alert(objeto.propriedade),
alert(objeto.metodo());

Números Perfeitos[editar | editar código-fonte]

function perfectNumbers(max) {
var i, j, k,
perfects = [];

for (i = 0; i++ < max;) {


for (j = k = 0; ++j < i;) {
if (i % j === 0) {
k += j;
}
}

if (k === i) {
perfects.push(k);
}
}

return perfects.join(', ');


}

alert('Números perfeitos de 1 a 5000:' + perfectNumbers(5000));

Versão[editar | editar código-fonte]


Mozill
Data da Netscape Internet Google
Versão[ a Oper Safar
7] publicaçã Equivalente para Navigato Explore Chrom
Firefo a i
o r r e
x

Março de
1.0 2.0 3.0
1996

Agosto de
1.1 3.0
1996
Junho de
1.2 4.0-4.05
1997

ECMA-262
Outubro
1.3 1st edition / ECMA- 4.06-4.7x 4.0
de 1998
262 2nd edition

Netscape
1.4
Server

5.5
(JScript
5.5),
6
6.0,
(JScript 3.0,
7.0,
Novembr ECMA-262 5.6), 3.1,
1.5 6.0 1.0 8.0, 1.0
o de 2000 3rd edition 7 3.2,
9.0,
(JScript 4.0
10.0
5.7),
8
(JScript
5.8)

1.5 + Array extras +


Novembr
1.6 Array e string]s 1.5
o de 2005
genéricas. + E4X

1.6 + Geradores
Outubro
1.7 Pythonic + Iteradores 2.0
de 2006
+ let

1.7 + Expressões
Junho de
1.8 geradoras + Expressõ 3.0
2008
es de clausura.

1.8 + Native
1.8.1 JSON support + 3.5
Minor Updates

Junho de 1.8.1 + Minor


1.8.2 3.6
2009 updates

Dezembro
1.8.5 1.8.1 4
de 2010
+ ECMAScript 5
Compliance

Bibliografia[editar | editar código-fonte]


 JavaScript Para World Wide Web, Tradução 3a. Edição, Visual QuickStart Guide,
Autor: Tom Negrino/Dori Smith, 1999, Editora Campus, ISBN 85-352-0622-1
 Teach Yourself JavaScript in a Week, Autor: Arman Danesh, 1996, Editora: Sams
Net, ISBN 1-57521-073-8

Referências
1. Ir para cima↑ «New in JavaScript 1.8.5». mozilla.org. Consultado em 10 de agosto de 2010
2. Ir para cima↑ Flanagan, David; Ferguson, Paula (2002). JavaScript: The Definitive Guide 4th
ed. [S.l.]: O'Reilly & Associates. ISBN 0-596-00048-0
3. Ir para cima↑ «ECMAScript Language Specification» (PDF)
4. Ir para cima↑ «10 Programming Languages You Should Learn Right Now - IT Management -
News & Reviews - eWeek.com». www.eweek.com. Consultado em 14 de abril de 2012
5. Ir para cima↑ Márcio d'Ávila (8 de dezembro de 2006). «Janela modal na web». mhavila.
Consultado em 2 de fevereiro de 2017
6. Ir para cima↑ Alexandre Magno. (8 de dezembro de 2006). «Javascript para o Bootstrap».
Github. Consultado em 2 de fevereiro de 2017
7. Ir para cima↑ John Resig. «Versions of JavaScript». Ejohn.org. Consultado em 19 de maio
de 2009

Ver também[editar | editar código-fonte]


 ECMAScript
 JScript
 NoScript
 Lista de linguagens de programação

Ligações externas[editar | editar código-fonte]

O Wikilivros tem um livro chamado JavaScript

O wikilivro Aplicativos em PHP tem uma página sobre JavaScript

 Página do MDN (em inglês)


 Standard ECMA-262 (em inglês)
 Introdução ao JavaScript (em inglês)
[Esconder]

v•e

Linguagens de programação
Esotéricas · Comparação · História · Programa Olá Mundo · Algo
 Ada
 Assembly (asm)
 BASIC
 C
 C++
 C#
 Clojure
 Crystal
 Dart
 Elixir
 Erlang
 F#
 Fortran
 Go
 Haskell
 Java
 JavaScript (JS)
 Julia
 Kotlin
 Lisp
 Lua
 Objective-C
 OCaml
 Pascal
 Perl
 PHP
 Python
 R
 Ruby
 Rust
 Scala
 Shell script
 Smalltalk
 Swift
 TypeScript
 Visual Basic .NET (VB.NET)
 mais...
Categoria · Lista
Categorias:
 JavaScript
 Linguagens de script
 Web
 Linguagens de programação criadas em 1995