Aula 3 - Javascript - DESENVOLVIMENTO DE SISTEMAS WEB
Aula 3 - Javascript - DESENVOLVIMENTO DE SISTEMAS WEB
Aula 3 - Javascript - DESENVOLVIMENTO DE SISTEMAS WEB
Sistemas Web
Aula 03
Javascript
Versão 23.1.0
https://survey.stackoverflow.co/2022/
Javascript != Java
Prof. Fernando Tsuda
Características
• Sintaxe é case-sensitive – letras maiúsculas e minúsculas são
diferentes;
• Os tipos de dados das variáveis são definidos dinamicamente durante
a execução do programa (tipagem dinâmica).
Ex:
function mostrarMensagem(msg) {
let msgCompleto;
msgCompleto = 'Retorna a ' +
'mensagem ' + msg;
return msgCompleto;
}
Estruturas básicas – Condicionais e Laços
• if / else
• switch
• while
• do..while
• for Exemplos:
• for..in break/continue: https://codepen.io/ftsuda-senac/pen/wvojgGq
diferença for..in e for..of: https://codepen.io/ftsuda-senac/pen/bGdaaGz
• for..of
• break / continue
Operadores de comparação (ES2015)
Exemplos que retornam true
Operador Descrição
(var1 = 3 e var2 = 4)
3 == var1
Retorna verdadeiro caso os operandos sejam
Igual (==) '3' == var1
iguais independente do tipo do valor.
3 == '3'
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Expressions_and_operators#Operadores_de_compara%C3%A7%C3%A3o
function multiplicar(a, b) {
return a * b;
}
Outra forma de declarar funções
const somar = function(a, b) { // pode usar var ou let
return a + b;
}
https://www.bryanbraun.com/2014/11/27/every-possible-way-to-define-a-javascript-function/
Outra forma de declarar funções
Arrow function
const somar = (a, b) => a + b // return implícito
{
"nome": "Bolo de chocolate",
"dataValidade": "2010-04-20",
"preco": 50.0,
"ingredientes": ["Farinha", "Açúcar", "Ovo", "Chocolate em pó"]
}
window
• getElementById('cabecalho')
• getElementsByTagName('div')
• getElementsByClassName('linhapar')
Exemplos
Seleção dos elementos e alteração das propriedades visuais
https://codepen.io/ftsuda-senac/pen/rRGyQr
https://codepen.io/ftsuda-senac/pen/MWgpNZL
• load
• DOMContentLoaded → Evento que ocorre quando HTML DOM foi
carregado em memória do navegador (diferente do documento ser
apresentado na tela)
Algumas referências
• Eventos JS
• https://developer.mozilla.org/en-US/docs/Web/API/Event
• https://developer.mozilla.org/en-US/docs/Web/Events
• Eventos de teclado
• https://developer.mozilla.org/en-
US/docs/Web/API/KeyboardEvent/key/Key_Values
Exemplos:
target x currentTarget: https://codepen.io/ftsuda-senac/pen/dyOevqm
preventDefault e stopPropagation : https://codepen.io/ftsuda-senac/pen/mdOLKmZ
Prof. Fernando Tsuda
Requisições Assíncronas - AJAX
• AJAX → Sigla para Asynchronous Javascript And XML
• Técnica que permite receber ou enviar informações estruturadas no
formato XML (ou atualmente no formato JSON) de maneira
assíncrona para uma aplicação web através de codificação Javascript
• Os navegadores fornecem o objeto XMLHttpRequest para criar e
tratar requisições HTTP através de codificação Javascript
• Referência XMLHttpRequest: https://developer.mozilla.org/en-
US/docs/Web/API/XMLHttpRequest
Requisição Assíncrona
Objeto XMLHttpRequest
+ Lógica em Javascript
XMLHttpRequest
• Objeto Javascript responsável pelo envio de requisições e
recebimento das respostas através de programação
• Referência MDN: https://developer.mozilla.org/en-
US/docs/Web/API/XMLHttpRequest
xhr.onload = function() {
if (xhr.status === 200) {
const resp = xhr.responseText;
// Tratar dados recebidos em resp
} else {
// Tratar o erro
}
};
xhr.send();
// OU
// const params = new URLSearchParams();
// params.append('nome', 'Fulano');
// params.append('dataNascimento', '2000-10-20');
// xhr.send(params);
objPromise.then((dadosSucesso) => {
// Usar dadosSucesso para algo
}).catch((dadosErro) => {
// Usar dadosErro para algo
});
w3schools.com
• https://www.w3schools.com/js/js_ajax_intro.asp
• https://www.w3schools.com/js/js_ajax_http.asp
• https://www.w3schools.com/js/js_ajax_http_send.asp
• https://www.w3schools.com/js/js_ajax_http_response.asp
Frameworks
HTML Frontend
Javascript
CSS
- React
- Angular
- Vue.js
Typescript - Tailwind.css
(ou outra alto nível) - etc