(Parte 1 de 4)

Manual JavaScript

“A Versão Nova de uma Velha História”“A Versão Nova de uma Velha História”

Este manual foi escrito lançado pela última vez no início 2004 e tenta explicar JavaScript enquanto linguagem de programação.

Fez parte da Enciclopédia Omega e, com o fato de a Enciclopédia Omega estar parada e, acrescida a isso a instabilidade na ferramenta então utilizada pela EO, resolvi desvincular este manual da EO e lançá-lo em separado. Aproveito para acrescentar um padrão de codificação que eu havia criado há tempos também, e que até hoje se encontrava esquecido.

A partir desta versão, este manual se encontrará em meu site pessoal, podendo evoluir para tratar de AJAX, XUL e outros assuntos, a depender da sua aceitação e do meu tempo disponível.

Espero que apreciem.

-- Cárlisson Galdino

"Não sou nem ateniense, nem grego, mas sim um cidadão do mundo." Sócrates

Manual JavaScript

Versão atual: 2006.04 Data de Publicação: 21 de abril de 2006 Classificação: Manual de Programação Autor: Cárlisson Galdino Contato: bardo@swissinfo.org

Manual JavaScript

Introdução5
História5
Altos e Baixos5
O Que Ela É5
Sobre Este Manual5
Conhecimento Prévio6
Software Necessário6
Programando Estruturadamente7
Tipos de Variáveis7
Operadores7
Listas8
Estrutura Básica8
Estruturas de Repetição8
while8
do-while9
for9
Estruturas de Decisão9
if9
switch10
if condensado10
Modularização10
Sobre Parâmetros1
Programando com Orientação a Objetos12
Antes de Começar12
Orientação a Objetos12
Composição12
Classes12
Herança12
Usando Objetos12
Estrutura with13
A Criação de Classes13
Classe Data13
Composição14
Herança14
Iara JavaScript Code Standards15
Indentação15
Expressões15

ÍndiceÍndice #3

Comentários15
Nomenclatura16
Variáveis16
Classes16

Manual JavaScript #4

Manual JavaScript IntroduçãoIntrodução

História

No ano de 1994, a empresa Netscape, fabricante do programa de mesmo nome para navegação na Internet, sentiu necessidade de implementar uma tecnologia de processamento modo cliente. Para programas simples que fossem executados no computador do usuário mesmo, sem que fosse preciso enviar informações para o computador servidor.

Eram coisas como a validação de um formulário, por exemplo.

navegador, masEm se tratando de programas complexos ou visuais

Na mesma época era adicionado suporte a applets Java (aplicativos pequenos e que são executados embutidos, no nosso caso em páginas HTML. Possuem uma área formalmente delimitada para eles) ao era ótimo, só que o tempo necessário para copiar e executar o programa em bytecode simplesmente não compensava certas pequenas tarefas. Além de que os applets não estão tão ligados assim aos elementos da página HTML afinal de contas. Foi aí que nasceu a solução.

A Netscape criou LiveScript, uma linguagem embutível na página HTML, interpretada pelo navegador, tomando bem menos tempo que Java e estando mais unida aos elementos da página.

Assim como aconteceu com Java - que se chamava Oak -, a linguagem da Netscape terminou mudando de nome com a paritipação da Sun Microsystems no projeto e assim a versão Beta 2 do Netscape, em 1995, já trazia estampada para a linguagem o novo nome: JavaScript. Não que tenha tanta ligação com Java, mas por pura questão de marketing. E assim nascia uma linguagem que se tornaria um padrão e sinônimo de processamento cliente em páginas web.

A linguagem JavaScript é tão poderosa e simples para manipular objetos (foi sua motivação principal manipular os elementos de uma página HTML) que se criou, a partir dela, um padrão: o ECMAScript. Vários outros setores utilizam uma linguagem nesse padrão, entre eles o VRML. O aplicativo proprietário Flash utilizava um, que depois evolui para o que eles hoje chamam de ActionScript, mas que mantém ainda certa compatibilidade.

Altos e Baixos

Criada inicialmente para pequenos processamentos, JavaScript foi muito utilizada para acrescentar recursos simples à página, às vezes banais. Esse uso é o que a faz ser lembrada como uma extensão do HTML e não como uma linguagem de fato.

Entretanto, JavaScript é uma linguagem de programação. Uma linguagem completa e poderosa, com as limitações que o meio exigia.

É uma linguagem que foi criada para: •alterar valores de elementos HTML;

•criar elementos HTML;

•validar formulário e controlar interação entre molduras.

Através de JavaScript você poderá ter acesso a qualquer elemento da página.

JavaScript reúne o que há de melhor em dois grupos consagrados de linguagem: listas associativas, tipagem dinâmica e expressões regulares de Perl (linguagem para criação de relatórios); a sintaxe básica, a biblioteca matemática e a de data de C/C++/Java (C é uma linguagem de grande peso no mundo Unix, e até nos outros; C++ é uma versão de C utilizando a técnica de Orientação a Objetos; Java é a linguagem preferida do meio acadêmico, mas que pouco a pouco atinge outras áreas). Se estou falando grego, desculpe-me: essas coisas serão tratadas adiante.

Esta linguagem pode ser utilizada de uma forma bem básica ao simplesmente associarmos ações simples a eventos de elementos da página (por exemplo, fazendo uma janela abrir ao clicarmos um botão de formulário HTML); de forma estruturada; ou, o que é mais interessante, orientada a objetos, de uma forma que lembra bastante a linguagem Perl.

Como tudo que é rosa tem que ter espinho, JavaScript tem suas limitações: só roda em um navegador web, depende do navegador do internauta e não lida com arquivos de maneira alguma. Mas como isso tudo era esperado de uma linguagem assim, podemos dizer que JavaScript é o que há de melhor nessa área.

Mas não é o fim para quem quer usar tantos recursos quantos seja necessário para a criação de uma aplicação local. O projeto Mozilla também apresenta um framework para a criação de programas gráficos normais (como usando Java/AWT ou GTK+), multiplataforma, usando-se JavaScript e XML, podendo inclusive ser executados por rede.

O Que Ela É

Atualmente, como já foi dito, é uma linguagem de programação que possui muitas qualidades e limitações do gênero ao qual pertence. Entretanto, JavaScript vinha sendo bastante subestimada pela comunidade de desenvolvedores em geral (pelo menos antes da do AJAX e da Web 2.0). Geralmente ser utilizada para coisas banais e amadoras.

É uma linguagem que lembra bastante C++ e Java.

Principalmente Java. Mas traz apenas semelhanças. Ela possui tipagem dinâmica, o que significa que você não precisa dizer qual o tipo da variável, podendo armazenar nela ora inteiro, ora string. Ela tem o tipo booleano também. Na verdade, quando se trata de variáveis, elas nem mesmo precisam ser criadas, mas criá-las é aconselhável para que o código se torne mais compreensível.

Por sua forte ligação aos elementos HTML, ela é muito utilizável para efeitos visuais curiosos, pena que a "Guerra dos Navegadores" terminou por complicar a vida do programador DHTML (JavaScript manipulando diretamente partes de um documento HTML como objetos). Mas quem tem paciência e investe nisso corre o risco de se surpreender com o resultado.

"$" antes de variável e coisas do gêneroIsso talvez seja pela

Apesar da sintaxe parecer com Java, por incrível que pareça ela me lembra bem mais linguagens como Perl, mesmo que não tenha tipagem dinâmica, pela lista - inclusive a associativa - ou talvez seja pelo modo como é feita a criação de classes.

No final, JavaScript parece um Perl com sintaxe de Java, com a difícil peculiaridade de não poder armazenar dados.

Sobre Este Manual

Como os volumes de Omega destinados a cobrir linguagens de programação, este livro tenta levar conhecimento bastante amplo da linguagem em si, mas mostrando alguns dos recursos disponíveis. Tenta também, como parte de Omega, traçar uma imagem - ainda que

Introdução #5

Manual JavaScript embaçada - da linguagem na comunidade, seu papel e uso perante os desenvolvedores, além de tentar definí-la como realmente é.

Aqui você aprenderá não apenas a programar em JavaScript como também a utilizar suas características para Orientação a Objetos. Isso sem contar com o uso de recursos estruturados bastante úteis herdados, em sua maioria, de Perl.

Não será tratado aqui nada referente a HTML ou DHTML, o nosso foco será JavaScript. Caso o leitor se interesse por qualquer dessas duas tecnologias (a primeira, inclusive, de primordial importância para o próprio JavaScript), sugiro que procure leitura especializada. Omega.javaScript tende a servir como um aprimoramento para quem já conhece um pouco de HTML e programação, e deseje conhecer melhor esta linguagem malcompreendida.

Conhecimento Prévio

Este livro assume que o leitor conhece já programação e, neste campo, tenha algum domínio sobre expressões lógicas e aritméticas, estruturas de repetição e de decisão, e programação Orientada a Objetos. Também assume-se que o leitor já domina, muito ou pouco, a linguagem de hipertexto HTML. De qualquer forma, aqui vai um resumo de cada um desses elementos, para recordar.

Programação estruturada utiliza uma máxima: qualquer programa pode ser feito a partir de estruturas de decisão, de repetição e dos conceitos: módulos - ou funções - e seqüências. A grande vantagem, à qual todos os programadores até hoje agradecem, é a abolição dos "GOTOs", que eram os principais responsáveis por códigos incompreensíveis. Na programação estruturada, fala-se em funções e variáveis: o programador estruturado tem o poder do verbo.

Expressões lógicas são seqüências de variáveis do tipo valorverdade e expressões comparativas que retornam valores-verdade. Valores-verdade a que me refiro são os conhecidos booleanos, que podem assumir valor "verdadeiro" ou "falso" (true ou false). Variáveis e expressões comparativas que retornavam este tipo são ligadas em cadeias por operadores lógicos e parênteses. Os operadores lógicos são: "E", "OU", "OU EXCLUSIVO", "E EXCLUSIVO" e "NÃO". Para um bom uso de expressões lógicas é recomendado o estudo de "lógica aplicada à computação" ou "lógica clássica proposicional".

Expressões aritméticas retornam números. São expressões matemáticas e envolvem variáveis de números, números constantes e chamadas de funções que retornam números, separados por parênteses e operadores matemáticos. São operadores matemáticos: "MAIS", "MENOS", "VEZES", "DIVIDIDO", "DIVIDIDO-SÓRESTO", "DIVIDIDO-SEM-FRACIONAR" e "ELEVADO-ÀPOTÊNCIA". Quanto a expressões aritméticas, são mais fáceis de serem compreendidas pelo fato de serem um pouco estudadas nos ensinos fundamental e médio.

Estruturas de repetição são blocos de código que são repetidos um determinado número de vezes ou até que certa condição seja atingida. A condição é o resultado de uma expressão lógica.

Estruturas de decisão são blocos de código que são executados apenas se dada condição for verdadeira. Algumas vezes, acompanhados de blocos que são executados somente se a mesma condição avaliada for falsa. A condição é também o resultado da avaliação de uma expressão lógica.

nova assimVocê pode recorrer a livros, mas há de encontrar

Programação Orientada a Objetos revolucionou a programação ao criar elementos complexos, que reúnem comportamento (métodos, parecidos com as funções da Programação Estruturada), estado (atributos, parecidos com as variáveis da P.E.) e identidade (como as variáveis, algo que os distingue uns dos outros). Há o conceito de classes, que são "moldes" para esses elementos complexos, chamados de objetos. Entre classes há associações. Entre estas, algumas são especialmente interessantes, como a herança - que é quando uma classe é, a princípio, igual a outra: claro que apenas a princípio, aí acrescentamos ou retiramos algo. Programação Orientada a Objetos é algo realmente interessante e útil. Se o leitor não conhece esta forma de programar, talvez sinta dificuldade na seção que trata a Orientação a Objetos em JavaScript. Recomendo fortemente que busque, caso seja este seu caso, informações sobre este que é um dos conceitos mais utilizados na programação atual - apesar de não ser coisa tão alguma coisa se fizer pesquisas na Internet sobre o assunto.

HTML é uma linguagem de hipertexto, utilizada para a criação de páginas na Internet. Ela serve, na verdade, para o que poderíamos chamar de "diagramação da web". Atualmente está começando a ser substituída por XML, sendo XHTML a linguagem transitória. Acontece que isto está acontecendo ainda em nível muito superficial e certamente levará um tempo até que seja mesmo substituída. Como uma linguagem de marcação de hipertexto, HTML oferece TAGs, que utilizamos para determinar locais onde objetos aparecerão e inserir os objetos. Quando se fala de "aplicação para web", isso não descarta HTML, muito pelo contrário: todo o processamento de um aplicativo que roda em um servidor precisa mostrar alguma coisa ao usuário e para isso não há como evitar o uso de uma linguagem de marcação, geralmente HTML mesmo.

Não é fundamentalmente necessário que você conheça

Orientação a Objetos, HTML ou expressões lógicas, mas tal desconhecimento poderá acarretar na dificuldade de compreender alguns trechos deste manual.

Software Necessário

Para trabalhar com JavaScript você vai precisar de um computador com um Sistema Operacional, um software navegador com suporte a JavaScript e um editor de textos ASCII qualquer. Texto puro mesmo. Claro que editores especiais para programação que ofereçam destaque sintático da linguagem JavaScript e outra facilidades são bem mais interessantes e confortáveis de se usar.

Há infinitas combinações possíveis para se trabalhar JavaScript mas, por ser este um volume de Omega, uma enciclopédia do software livre, mediante as vantagens já faladas no volume principal desta categoria de software, recomendamos a seguinte combinação: GNU/Linux (o sistema operacional), Mozilla (o navegador) e Kate (o editor). Claro que há muitas outras opções, como o FreeBSD como Sistema Operacional, o Galeon como navegador e o emacs como editor, portanto sinta-se à vontade para escolher sua combinação: o S.O. certamente será um que você já tenha instalado e e venha usando; o navegador você provavelmente já tem também; o editor pode ser provisoriamente o editor de texto padrão/preferido-seu em seu sistema, se você não tiver ainda um editor com destaque sintático.

Mas, enfim, por incrível que pareça, é só disso mesmo que você vai precisar.

Introdução #6

Manual JavaScript

Programando EstruturadamenteProgramando Estruturadamente

Neste capítulo trataremos todos os detalhes da linguagem JavaScript para programação estruturada. Pelo menos é este o objetivo, mas certamente não será atingido assim de início. Caso o leitor não entenda muito de programação estruturada, sugiro que busque leitura sobre "algoritmo", pois é fundamental.

Tipos de Variáveis

Variáveis servem para armazenar "coisas" que serão utilizadas no decorrer de um programa ou parte dele. Eu poderia dizer que armazenam valores ou dados, mas acredito que "coisas" é uma definição melhor: pois podem ser números, cadeias de caracteres, objetos e até, estranhamente, funções!

Em JavaScript lidamos com alguns tipos básicos. São eles: número, valor-verdade e cadeia de caracteres. Para facilitar a abordagem, vamos esquecer que variáveis podem guardar referência a funções ou se referir a objetos e consideremos a existência de apenas esses três tipos de dados básicos - são, afinal de contas, os únicos citados que podem ser classificados como "tipos básicos".

Variáveis do tipo número guardarão números que poderão ser positivos, nulos ou negativos, inteiros ou fracionários (pois na verdade os computadores não guardam números reais. Tanto que é preferível tratar o que os computadores guardam como pontos flutuantes ao invés de se usar o termo "reais"). Com eles pode-se fazer operações matemáticas em geral. Na verdade, é provável que JavaScript separe inteiros de flutuantes, mas isso é totalmente transparente ao usuário. Outra coisa interessante sobre números e JavaScript é que a linguagem também representa números absurdamente grandes, chamando-os de Infinity positivo e negativo. Assim, não ocorrerá necessariamente um erro ao se tentar dividir por zero, por exemplo.

(Parte 1 de 4)

Comentários