Linguagens e Ambientes de Programação (2022/2023)



Teórica 19 (11/mai/2023)

Introdução à linguagem JavaScript.
Porque vamos trabalhar com a linguagem JavaScript?
JavaScript embebido numa consola.
JavaScript embebido num WEB browser.
DOM - Document Object Model.



Introdução à linguagem JavaScript

Brendan Eich

Algumas características

Versões do JavaScript

A implementação original feita por Brendan Eich evoluiu com o tempo, e deu origem a duas implementações que atualmente são open source e são mantidas pela Mozilla Foundation: Outras implementações que importa referir: O JavaScript foi padronizado em 1997. O padrão chama-se ECMA-262, sendo ECMAScript o nome oficial da linguagem. No entanto, a linguagem continua a ser conhecida informalmente como JavaScript.

Bibliotecas e frameworks

Existem bibliotecas e frameworks que ajudam a escrever programas JavaScript sofisticados, com interfaces ambiciosas. Eis alguns das mais usados:

Porque vamos trabalhar com a linguagem JavaScript?

Na nossa cadeira, vamos estudar e trabalhar com a linguagem JavaScript por diversas razões. Eis as principais:

JavaScript embebido numa consola

O JavaScript só pode ser usado integrado num ambiente de execução que forneça formas de interação com o exterior.

A versão de consola do Node.js corre num ambiente que fornece um interpretador interativo e uma consola, que disponibiliza uma operação de escrita log.

Examine bem esta pequena sessão de trabalho com a versão de consola do interpretador Node.js. São apenas algumas experiências iniciais.

Com apenas duas exceções, as expressões anteriores também funcionam no "JavaScript Shell" (disponível na coluna da esquerda da página da cadeira) e também na consola do browser.


JavaScript embebido num WEB browser

A visualização duma página Web corresponde a um processo que envolve três passos:

  1. Inicialmente, a página é descrita num ficheiro usando a linguage HTML. O HTML é uma linguagem de descrição de documentos que está padronizada.
  2. Quando a página é carregada por um browser, o browser processa a descrição HTML e cria uma uma rede de objetos em memória. O formato desses objetos está descrito num padrão chamado DOM - Document Object Model.
  3. Finalmente, o browser faz o "rendering" da página, produzindo uma versão visual que o utilizador consegue entender.

Todos os browsers possuem um interpretador de JavaScript embebido . O JavaScript tem acesso a todos os objetos do DOM e consegue manipulá-los.

Portanto qualquer browser da Web é obrigado a suportar diversas tecnologias: HTML, DOM, JavaScript.

Um pouco mais de informação sobre o Dom: Já vimos que o DOM descreve a visão interna que o JavaScript tem das páginas escritas originalmente escritas em HTML. Usando o DOM, o JavaScript consegue examinar e modificar dinamicamente qualquer página WEB.

A instituição que controla os padrões da Web chama-se W3C - World Wide Web Consortium.

Finalmente, convém saber que há algumas incompatibilidades entre diferentes browsers. Conseguir fazer um programa em JavaScript que funcione em todos os browser existentes por vezes é uma tarefa complicada. Mas já foi mais difícil no passado do que atualmente. Cada vez mais os browsers aderem às normas oficiais, mesmo nos detalhes.

Exemplo 1

O seguinte exemplo é um formulário simples que permite somar números. O formulário é constituída por três caixas de texto, a terceira das quais é read-only, e por um botão. Por favor, brinque um pouco com o formulário para perceber o seu comportamento. Agora examine o código HTML e JavaScript que implementa o formulário anterior. Repare que no botão "Add" o atributo ONCLICK tem associado código que será executado sempre que o botão gerar um evento de click.

HTML

O exemplo anterior ajuda-nos a perceber a sintaxe linguagem de descrição de documentos HTML:

Relativamente à semântica do HTML, convém saber que as marcas e atributos que podemos usar estão predefinidos e têm significados predefinidos. Eis a lista completa das marcas disponíveis. Eis a lista completa dos atributos disponíveis

Exemplo 2

O seguinte exemplo é uma form contendo botões de rádio e uma área de texto. Por favor, teste o formulário. Eis o código HTML e JavaScript correspondentes:

Exemplo 3

O seguinte exemplo mostra como se pode carregar um novo URL, mudando assim completamente o conteúdo do documento corrente. Também ilustra a criação duma caixa de alerta. Eis o código HTML e JavaScript correspondentes:

Exemplo 4

O seguinte exemplo serve para ilustrar a operação eval do JavaScript. Como já foi dito antes, todas as implementações de JavaScript devem ser capazes de interpretar código gerado dinamicamente. Isso pressupõe a existência duma função eval para correr código JavaScript arbitrário. Eis o código HTML e JavaScript que implementa a calculadora. A implementação é verdadeiramente simples. Constrói no mostrador da calculadora, a pouco e pouco, a expressão introduzida pelo utilizador sob a forma de string. No final, quando o utilizador carrega na tecla '=', invoca a função eval para avaliar a o conteúdo da string. Este truque funciona bem porque as expressões aritméticas do JavaScript têm a sintaxe habitual da matemática.

Exemplo 5

O seguinte exemplo ilustra o uso dum canvas em JavaScript. Um canvas é simplesmente um retângulo onde se podem desenhar gráficos. Examine o código HTML e JavaScript que implementa o retângulo anterior.

O preenchimento do canvas só pode ser feito depois do canvas ter sido criado. Uma forma de fazer isso é colocar o código JavaScript nas linhas imediatamente a seguir à definição do canvas. Mas é considerado pouco elegante misturar código JavaScript com código HTML no body da página. É preferível colocar o código JavaScript dentro do header da página, como temos feito sempre, e invocar esse código depois da página ter sido carregada. Existe um evento de onload que é ativado quando a página é carregada. Esse evento é capturado usando o atributo ONLOAD no elemento BODY.

Exemplo 6

Este exemplo mostra como se pode mudar um pedaço de texto arbitrário dentro duma página Web.

Exemplo: blá blá 0 blá blá.

Requer um pouco de planeamento, porque precisamos primeiro de associar um ID ao texto a alterar.

Se o texto já estiver marcado de alguma forma, por exemplo com a marca de bold assim <b>o meu texto</b>, então basta adicionar o ID desta forma, <b id='o meu id'>o meu texto</b>.

Se o texto não estiver marcado, então temos de o marcar com a marca span e adicionar o ID desta forma, <span id='o meu id'>o meu texto</span>.

Agora que o texto já está marcado e tem um ID, para lhe aceder em JavaScript basta usar a expressão document.getElementById('o meu id').innerHTML.

Veja o código do exemplo:



Vídeos antigos

Estes vídeos poderão estar um pouco desatualizados, pois foram feitos no contexto duma edição anterior do LAP. Contudo, partes dos vídeos poderão continuar a ter alguma utilidade.

#--- 30