1. Boolean 2. Number 3. String 4. Null 5. Undefined 6. Symbol 7. Object + - / * ** % ++ --= += -= *= /=== === != !== < <= > >=! && || Math.sqrt(), Math.random(), Math.PI, Math.round()...
// tradicional
function nomeCompleto(nome, sobre) {
return nome + ' ' + sobre;
}
// anônima em variável
const nomeCompleto = function(nome, sobre) {
return nome + ' ' + sobre;
}
nomeCompleto('Mijaro', 'Nomuro')if (nota >= 8) {
console.log('show');
} else if (nota >= 6) {
console.log('bom');
} else if (nota >= 4) {
console.log('melhorar');
} else {
console.log('🔴');
}
// operador ternário
// condicional
let vivo =
hp > 0 ? 'sim' : 'não';
switch (clima) {
case 'ensolarado':
cor = 'yellow';
break;
case 'chuvoso':
gotas = true; // vazar
default:
cor = 'gray';
}
Vetores
let radios = [106.1, 105.1, 98.3];
let cores = ['azul', 'verde'];
let animais = []; // <- vetor vazio
animais.push('dogue'); // ['dogue']
Repetição
// tradicional
for(let i=0; i<cores.length;i++){
console.log(cores[i]);
}
// impr. azul, verde
// for of 👍
for (let cor of cores) {
console.log(cor);
}
// impr. azul, verde
// forEach 👍
cores.forEach(function(cor) {
console.log(cor);
});
// impr. azul, verde
Vários métodos de ↓ strings e de vetores ⤥
'Hannah'.toLowerCase() === 'hannah'
'Ovo'.replace('O', 'Ou') === 'Ouvo'
'BR4512348ZY'.substr(0, 2) === 'BR'
'Charmander'.indexOf('arma') === 4
radios.push(92.5); // insere no final
radios.pop(); // remove do final
cores.unshift('verm'); // insere no início
cores.shift(); // remove do início
<input>)<label>...</label>)<button>...</button>)
<input type="...">: text, date, number
type="number":
<input type="number" id="qtde-de-pasteis" value="4">
Resultado:
input[type="number"] { /* apenas <input>s do tipo "number" */
width: 40px;
}
<input type="number">:
value="...": valor inicial
<input type=”number” value=”4”>
min="...", max="...": valor mínimo/máximo permitido
<input type=”number” min=”3” max=”5”>
step="...": quanto aumentar/diminuir ao clicar nas setinhas
<input type=”number” step=”0.2”>
<label>...</label><input><input> ele se refere e isso pode ser feito de duas formas:
<label>Pastéis: <input type="number" value="4"></label> <!-- dentro -->
<label for="qtde-de-pasteis">Pastéis:</label> <!-- usando label for -->
<input type="number" value="4" id="qtde-de-pasteis"> <!-- e id -->
<button>texto</button>, em que:
texto é o que aparece dentro do botão:
<button id="delicia">Sou um delicioso botão</button>
- mas não acontece nada?!
let botaoDeliciaEl = document.querySelector('#delicia');
botaoDeliciaEl.addEventListener('click', function() {
console.log(':3');
}); // veremos como isso funciona!!
<script></script> e
faz download do arquivo apontado ... <!-- dentro do HEAD -->
<script src="executa-no-inicio.js"></script>
</head>
<body>
...
<!-- última coisa antes de fechar /BODY -->
<script src="executa-no-fim-da-pagina.js"></script>
</body>
<script>
// código javascript aqui, dentro do HTML
</script>
<button onclick="javascript: window.alert('papagaio');">Mensagem</button>
| Código | Quando executa? | Reaproveitamento | Fica no cache? | Boa prática? |
|---|---|---|---|---|
| Externo | Assim que o navegador vê a inclusão e baixa o arquivo | Máximo: entre todas as páginas | Sim | Sim |
| Embutido | Assim que o navegador vê o <script>...</script> |
Médio: apenas dentro da página | Não | Não |
| Inline | Quando acontece o evento (eg, click) |
Nenhum | Não | Não |
<script src="..."></script>?<head> (logo antes de fechá-lo com </head>)<body> (logo antes de fechá-lo com </body>)
```html
…</head>
...</html> ```
<body>1. Boolean 👀 já vimos2. Number 👀 já vimos3. String 👀 já vimos4. Null ⬅5. Undefined ⬅6. Symbol [🌐 Symbols? É de comer?][symbol]7. Object ⬅4. Null nulllet x = null;
console.log(typeof x); // imprime null
Usamos quando uma variável não tem um valor aplicável naquele momento
5. Undefined undefinedlet x;
console.log(typeof x); // imprime undefined
É o tipo padrão de variáveis que não foram associadas a nenhum valor
7. Object let jogador = {
pontos: 1420,
vidas: 2
};
console.log(jogador.pontos);
// imprime 1420
undefinedpontos, valor: 1420vidas, valor: 2// notação ponto
console.log(jogador.vidas);
// notação colchete
console.log(jogador['vidas']);
Quando um objeto tem uma propriedade que é uma função, chamamos ela de método.
Há vários objetos comuns que usamos no dia a dia: Math, console, window. Exemplos:
Math possui uma propriedade:
Math.PI
(PI → 3.14159) (cujo valor é Number)
console possui uma propriedade
console.log
(log → function() {…})
window possui uma propriedade
window.alert
(alert → function() {…})
E se quisermos criar nossos próprios objetos? #mcfaz?
let jogador = { // forma mais expressiva, curta e sexy 😎
pontos: 1420, // propriedades separadas por vírgula
vidas: 2
};
let jogador = {}; // um objeto vazio: { }
jogador.pontos = 1420; // criou jogador.pontos com valor 1420
jogador.vidas = 2; // criou jogador.vidas
new:
let jogador = new Object();
jogador.pontos = 1420;
jogador.vidas = 2;
let voo = {
companhia: 'Gol',
numero: 815,
decolagem: {
IATA: 'SYD',
horario: '2004-09-22 14:55',
cidade: 'Sydney'
},
chegada: {
IATA: 'LAX',
horario: '2004-09-23 10:42',
cidade: 'Los Angeles'
}
};
voo, com as propriedades:
companhianumerodecolagemchegadadecolagem e chegada são objetos por si mesmosconst loja = {
livros: [ // prop. é um vetor
'macunaíma',
'torre negra'
],
dinheiro: 500, // propri. é number
// método vender
vender: function() { // p. é função
this.dinheiro += 15;
}
};
loja.vender(); // loja.dinheiro = 515
loja.vender(); // loja.dinheiro = 530
thisObject Existem outros tipos complexos, que são baseados em Object:
Date
Por exemplo, para imprimir o horário atual no console:
js
let agora = new Date();
console.log(agora); //Sun Jan 17 2021 18:11:46...
Function
(sim! funções são objetos em JavaScript)
Array
(vetores também são objetos)
SeuProprioTipo™
(é possível criar novos tipos também)
<!DOCTYPE html>
<html>
<head>
<title>HTML</title>
</head>
<body>
<!-- Add your content here -->
</body>
</html>

document dá acesso ao Document Object Model, ou DOMid e colocá-lo em
uma variável:
let botaoDeliciaEl = document.querySelector('#botao-delicia');
document.querySelector(seletor) permite que, a partir de um código
JavaScript, recuperemos um elemento do DOM
let logoEl = document.querySelector('#logomarca');
let tabelaEl = document.querySelector('#tesouros-pirata');
let principalEl = document.querySelector('main');
document.querySelectorAll(seletor) (repare o all),
que retorna mais de um elemento, mas veremos ele depois// recupera o elemento do botão no DOM
let botaoDeliciaEl = document.querySelector('#botao-delicia');
// atrela uma função ao evento de 'click' do botão
botaoDeliciaEl.addEventListener('click', function() { /* ... */ });
// recupera o elemento do botão no DOM
let botaoDeliciaEl = document.querySelector('#botao-delicia');
// atrela uma callback ao evento de 'click' do botão
botaoDeliciaEl.addEventListener('click', function() {
alert('O botão delícia foi clicado!!');
// pode fazer várias coisas aqui
});
// define a função 'mostraMensagem'
function mostraMensagem() {
alert('O botão delícia foi clicado!!');
}
// atrela uma função ao evento de 'click' do botão
botaoDeliciaEl.addEventListener('click', mostraMensagem);
input<input>:
let qtdePasteisEl = document.querySelector('#qtde-de-pasteis');
let quantidade = qtdePasteisEl.value;
console.log(quantidade); // imprime valor que estava no input
<input> usando JavaScript:
let qtdePasteisEl = document.querySelector('#qtde-de-pasteis');
qtdePasteisEl.value = 25;
alert ou console.log
❌
✅