JavaScript
+ - O que é
Linguagem de Programação
+ - Linguagem de Scripting
Multiplataforma
+ - Roda no cliente
Projetada para fácil integração
Fácil de aprender
Leve
+ - Especificação aberta
+ - Descendente de
Semelhante ao Java, mas não é Java
Tem coisas que o Java não tem
E vice versa
+ - Comparação
JavaScript |
Java |
|
|
|
|
|
|
Fonte: http://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/JavaScript_Overview#What_is_JavaScript.3F
+ - Principal problema de JavaScript
Há muitas maneiras erradas de escrever código JavaScript
Desenvolvimento em JavaScript pode ser bottom-up ao invés de top-down
+ - Origem
Criação do LiveScript
+ - Netscape
1995
Semelhante ao Java, mas não é Java
Foi chamado de JavaScript no Netscape 2.0
Criação do JScript
Padronização da linguagem: ECMAScript
2008
Douglas Crockford
Editora AltaBooks
~
Avançado, para bons programadores
Onde pode ser executada
principalmente no navegador Web
também para automatizar programas
e para desenvolvimento em Geral
JavaScript não é só para Web
+ - Capacidades
O que dá para fazer
Implementar comportamento em Páginas Web
+ - DHTML
Reescrever o código HTML de uma página depois de carregar a página
~Reescrever o código CSS de uma página depois de carregar a página
~Criar imagens depois de carregar a página
Validar formulários
Escrever cookies
Detectar qual é o navegador
Tocar sons
+ - Emular recursos não existentes em certos navegadores
Corrigir bugs do IE6 e 7
Implementar CSS3
Implementar HTML5
etc...
O que não dá para fazer no browser
Ler arquivos do Sistema Operacional
Executar outros programas
Enviar um email sem avisar o usuário
Ler o histórico do navegador
Executar um código em páginas que venham de outro servidor
Configurar o upload de um arquivo
Fechar uma janela que não foi aberta pelo JavaScript
+ - O Mundo do ECMAScript
+ - JavaScript
Versão JavaScript | Versão do Firefox / Navigator |
---|---|
JavaScript 1.0 | Navigator 2.0 |
JavaScript 1.1 | Navigator 3.0 |
JavaScript 1.2 | Navigator 4.0-4.05 |
JavaScript 1.3 | Navigator 4.06-4.7x |
JavaScript 1.4 | |
JavaScript 1.5 |
Navigator 6.0 Mozilla (open source browser) |
JavaScript 1.6 | Firefox 1.5, other Mozilla 1.8-based products |
JavaScript 1.7 | Firefox 2, other Mozilla 1.8.1-based products |
JavaScript 1.8 | Firefox 3, other Gecko 1.9-based products |
Fonte: http://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/About#What_you_should_already_know
+ - JScript
+ - Relacionando JScript, JavaScript e ECMAScript
JavaScript | JScript | ECMAScript |
---|---|---|
1.0 (Netscape 2.0, Março 1996) | 1.0 (IE 3.0 - primeiras versões, Agosto 1996) | |
1.1 (Netscape 3.0, Agosto 1996) | 2.0 (IE 3.0 - versões posteriorer, Janeiro 1997) | |
1.2 (Netscape 4.0-4.05, Junho 1997) | ||
1.3 (Netscape 4.06-4.7x, Outubro 1998) | 3.0 (IE 4.0, Oct 1997) | Edição 1 (Junho 1997) / Edição 2 (June 1998) |
1.4 (Apenas para Servidor Netscape) | 4.0 (Visual Studio 6, não tem versão do IE) | |
5.0 (IE 5.0, Março 1999) | ||
5.1 (IE 5.01) | ||
1.5 (Netscape 6.0, Nov 2000; depois no Mozilla) | 5.5 (IE 5.5, July 2000) | Edition 3 (December 1999) |
5.6 (IE 6.0, Outubro 2001) | ||
1.6 (Gecko 1.8, Firefox 1.5, Novembro 2005) |
Edição 3, com melhorias complementares: E4X, Array extras (e.g. Array.prototype.forEach ), Array and String generics (New in JavaScript 1.6)
|
|
1.7 (Gecko 1.8.1, Firefox 2, October 2006) |
Edição 3 mais melhorias do 1.6 e generators no estilo do Python, array comprehensions ([a*a for (a in iter)] ), escopo de bloco com let , destructing assigments (var [a,b]=[1,2] ) (New in JavaScript 1.7)
|
|
1.8 (Gecko 1.9, Firefox 3, June 2008) |
Edição 3 mais melhorias do 1.7, mais expression closures (function(x) x * x ), generator expressions (New in JavaScript 1.8)
|
|
JScript .NET (ASP.NET; sem versão do IE) | ||
JavaScript 2.0 Cancelado! |
Fonte: http://en.wikipedia.org/wiki/ECMAScript#Version_correspondence
Versões mais seguras de se trabalhar
+ - Colocando JavaScript em uma página
+ - Depurando JavaScript
+ - Características da Linguagem
var a = function () { alert("Sou uma funcao!"); };
a();
Não precisam de classes
São protótipos
var flipper = { cor:"azul", rodas:4 };
alert(flipper.cor);
alert(flipper.rodas);
+ - Exemplos
+ - Comandos Básicos