./adote-um-dev.sh
Nível: h4ck3rm4n
Agenda
Antes de mais nada...
Manipulação do DOM
DOM - Busca
// Pelo ID do elemento no HTML
document.getElementById(id)
// Pela TAG do elemento no HTML
document.getElementsByTagName(name)
// Pela CLASSE do elemento no HTML
document.getElementsByClassName(name)
DOM - Alteração
// Alterando o conteúdo do HTML do elemento
element.innerHTML = "novo conteudo dentro do HTML"
// Alterando o valor do atributo do elemento
element.attribute = "novo valor"
// Alterando a propriedade de estilo do elemento
element.style.property = "novo estilo"
// Alterando o valor do atributo do elemento, através de um método
element.setAttribute(atributo, valor)
DOM - Adc./Remov.
// Cria um novo elemento HTML
document.createElement(elemento)
// Remove um elemento do HTML
document.removeChild(elemento)
// Adiciona um elemento HTML em um elemento existente
document.appendChild(elemento)
// Substitui um elemento HTML
document.replaceChild(novoElemento, elementoAntigo)
// Adiciona um texto no HTML
document.write(text)
// EXTRA: também podemos adicionar handlers de evento
// ex.:
document.getElementById(id).onclick = function() { /* código*/ }
Eventos
Eventos
<button
onclick="mostraData()"
>
Qual a data?
</button>
<p id="dataHoje"></p>
function mostraData() {
document.getElementById("dataHoje").innerHTML = Date();
}
Eventos
<button
id="meuBotao"
>
Qual a data?
</button>
<p id="dataHoje"></p>
document.getElementById("meuBotao").onclick = mostraData;
function mostraData() {
document.getElementById("dataHoje").innerHTML = Date();
}
JavaScript Assíncrono
JavaScript Assíncrono
//Pedir uma pizza é um exemplo na vida real de uma função assíncrona
pedirPizza(pedido => {
console.log(`Sua pizza de ${pedido.sabor} está pronta.`);
});
JavaScript Assíncrono
let salarioBruto = 3000;
let salarioLiquido;
function getSalario(salarioBruto, callback)
{
let liquido = 0;
const inss = salarioBruto * 0.11;
const vr = salarioBruto * 0.05;
const vt = salarioBruto * 0.06;
const fgts = salarioBruto * 0.15;
const descontos = inss + vr + vt + fgts;
liquido = salarioBruto - descontos;
return callback(liquido);
}
getSalario(salarioBruto, (resultado) => {
salarioLiquido = resultado;
console.log(`O salário liquido é ${salarioLiquido}`);
});
JavaScript Assíncrono
let salarioBruto = 3000;
let salarioLiquido;
function getSalario(salarioBruto, callback)
{
let liquido = 0;
const inss = salarioBruto * 0.11;
const vr = salarioBruto * 0.05;
const vt = salarioBruto * 0.06;
const fgts = salarioBruto * 0.15;
const descontos = inss + vr + vt + fgts;
liquido = salarioBruto - descontos;
return callback(liquido);
}
getSalario(salarioBruto, (resultado) => {
salarioLiquido = resultado;
console.log(`O salário liquido é ${salarioLiquido}`);
});
JavaScript Assíncrono
function getRandomPonyFooArticle () {
return new Promise((resolve, reject) => {
request('https://ponyfoo.com/articles/random', (err, res, body) => {
if (err) {
reject(err); return;
}
resolve(body);
});
});
}
JavaScript Assíncrono
function getRandomPonyFooArticle () {
return new Promise((resolve, reject) => {
request('https://ponyfoo.com/articles/random', (err, res, body) => {
if (err) {
reject(err); return;
}
resolve(body);
});
});
}
JavaScript Assíncrono
function printRandomArticle () {
getRandomPonyFooArticle()
.then(html => hget(html, {
markdown: true,
root: 'main',
ignore: '.at-subscribe,.mm-comments,.de-sidebar'
}))
.then(md => marked(md, {
renderer: new Term()
}))
.then(txt => console.log(txt))
.catch(reason => console.error(reason));
}
JavaScript Assíncrono
async function read () {
var html = await getRandomPonyFooArticle();
var md = hget(html, {
markdown: true,
root: 'main',
ignore: '.at-subscribe,.mm-comments,.de-sidebar'
});
var txt = marked(md, {
renderer: new Term()
});
return txt;
}
Conclusão
Text