localStorage + sessionStoragewindow.localStorage.setItem('personagem', 'Jake'); // pra sempre
window.sessionStorage.setItem('quest', 'Salvar a Jujuba'); // temporariam.
window.localStorage e window.sessionStoragelet nome = localStorage.getItem('personagem'); // retorna "Jake"
let objetivo = sessionStorage.getItem('quest'); // retorna "Salvar a Jujuba"
window possui o objeto JSON que contém métodos de conversão
do formato JSON entre string e objetos JavaScript
JSON.stringify({ nome: 'Flavio', sobrenome: 'Coutinho' });
// retorna '{"nome":"Flavio","sobrenome":"Coutinho"}' (uma string)
let banco = JSON.parse('{"nome":"Itaú","codigo":"341"}');
console.log(banco.nome); // imprime Itaú
Exemplos:
moment.js ~ lidando com datas
cheet.js ~ criando easter eggs
underscore.js ~ trabalhando com vetores
.js que você deve
incluir em suas páginas
.js ...
<script src="biblioteca.js"></script> <!-- ⬅️ -->
<script src="meu-proprio-codigo.js"></script>
</body>
</html>
let agora = moment();
let entrega = agora.add(7, 'days');
let apollo11 = moment('20071969',
'DDMMYYYY');
let quantoTempo = apollo11.fromNow();
alert('Alunamos há: ' + quantoTempo);
// 48 years ago
let dinheiro = 100;
let somDeSucesso = document
.createElement('audio');
somDeSucesso.src = 'blip.mp3';
cheet('⬆️ ⬆️ ⬇️ ⬇️ ⬅️ ➡️ ⬅️ ➡️ b a', function() {
dinheiro += 1000;
somDeSucesso.play();
});
let naipeOuro = ['♦️ás', '♦️2', ... '♦️rei'];
let naipePaus = ...
...
let baralho = [naipeOuro, naipePaus, naipeEspada, naipeCopas];
baralho = _.flatten(baralho); // (a) "achatou" os vetores
baralho = _.shuffle(baralho); // (b) embaralhou as cartas
underscore.js expõe um único objeto: o window._
Criada em 2006 por John Resig
jquery.js. Há 2 formas:
jquery.js e colocando-o com o seu projeto:
<script src="js/jquery.js"></script>
<script src="js/meu-proprio-codigo.js"></script>
</body>
</html>
jquery.js hospedado em uma CDN (i.e., na nuvem)
<script src="http://algumacdn.com.br/jquery.js"></script>
<script src="js/meu-proprio-codigo.js"></script>
</body>
</html>
jquery.jsjquery.js disponibiliza apenas 1 objeto/função, que possui
toda a funcionalidade da biblioteca:
window.jQuery = $ = function(seletor) {
// ... zilhão de funções úteis aqui
}
$ é um nome válido para uma variável em JavaScript, e é
exatamente a variável que expõe a “função jQuery”$ (jQuery) recebe uma string com um seletor CSS, igual a
document.querySelectorAll// Usando jQuery
$('#pokemon').html('Pikachu');
// $('#pokemon') == jQuery('#pokemon')
// Em "vanilla js" (js puro)
let el = document.querySelector('#pokemon');
el.innerHTML = 'Pikachu';
$
$ (ou função jQuery)$('p').html('It\'s me, Maaaario!');
// alterou o innerHTML de TODOS os parágrafos da página
// versão jQuery
$('button').click((e) => {
let $p = $(e.currentTarget).closest('p');
$p.toggleClass('expandido');
$p.html($p.hasClass('expandido') ? '-' : '+');
});
// versão "vanilla js"
let botoes = document.querySelectorAll('button');
for (let bEl of botoes) {
bEl.addEventListener('click', (e) => {
let pEl = e.currentTarget.parentNode;
let colocou = pEl.classList.toggle('expandido');
e.currentTarget.innerHTML = colocou ? '-' : '+';
});
}
$('.ajuda').click(ajuda);
document.querySelectorAll('.ajuda')
.forEach(el =>
el.addEventListener('click', ajuda);
);
$colecao.click(callback); // addEventListener('click', callback)
$colecao.mousemove(callback); // 'mousemove'
$colecao.keyup(callback); // 'keyup'
$colecao.change(callback); // 'change' (no input)
$colecao.hover(callbackOver, callbackOut);
$('#tutorial').toggleClass('big');
document.querySelector('#tutorial')
.classList.toggle('big');
$('#tutorial').css('width', '50px');
document.querySelector('#tutorial')
.style.width = '50px';
.css(prop, valor) na
documentação$colecao.fadeIn(); // faz elementos surgirem com opacity [0, 1]
$colecao.fadeOut(); // faz elementos desaparecerem [1, 0]
$colecao.fadeToggle(); // alterna fadeIn()/fadeOut()
$colecao.slideDown(); // faz elementos surgirem de cima para baixo
$colecao.slideUp(); // faz elementos desaparecerem para cima
$colecao.slideToggle(); // alterna slideDown()/slideUp()
Acesse código e visual em outra janela AQUI!
<div class="sanfona">
<h2>Tópico 1</h2>
<p>Sobre o tópico 1...</p>
<h2>Tópico 2...</h2>
<p>Sobre o tópico 2...</p>
</div>
let $topicos = $('.sanfona h2');
$topicos.click(e => {
let $topico = $(e.currentTarget);
let $p = $topico.next(); // ← ← ←
$p.slideToggle();
});
Acesse código e visual em outra janela AQUI!
$colecao.next(); // irmão seguinte de cada elemento
$colecao.prev(); // irmão anterior...
$colecao.parent(); // pai de cada elemento
$colecao.find(seletor); // filhos que atendam ao seletor
$colecao.closest(seletor); // ancestral mais próximo -> seletor