Variáveis, tipos de dados e operadores.
<!-- Direto no HTML -->
<script>
alert('Olá, mundo!');
</script>
<!-- No final do <body> -->
<script src="js/script.js"></script>
<script> antes de fechar o </body> para que o HTML carregue primeiro.
// Abra o DevTools (F12) e vá na aba Console
console.log('Testando JavaScript!');
console.log(2 + 2); // 4
O console.log() é sua principal ferramenta
de debug. Use sempre para testar e inspecionar valores.
var nome = 'Ana';
// Escopo de função
// Pode ser redeclarada
// Sofre hoisting
Forma antiga, pode causar bugs inesperados.
let idade = 25;
idade = 26; // OK!
// Escopo de bloco
// Não pode redeclarar
// Reatribuição permitida
Use quando o valor precisa mudar.
const PI = 3.14159;
PI = 3; // ERRO!
// Escopo de bloco
// Não pode redeclarar
// Não pode reatribuir
Use sempre que possível. Padrão recomendado.
const. Se precisar mudar o valor, troque para let. Nunca use var.
const nome = 'Maria';
const sobrenome = "Silva";
const frase = `Olá, ${nome}!`;
Textos entre aspas simples, duplas ou crases (template literals).
const inteiro = 42;
const decimal = 3.14;
const negativo = -10;
Inteiros e decimais são o mesmo tipo.
const ativo = true;
const logado = false;
Verdadeiro ou falso, usado em condições.
let valor;
console.log(valor); // undefined
const vazio = null;
console.log(vazio); // null
undefined = não definido, null = intencionalmente vazio.
console.log(typeof 'texto'); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" (bug histórico!)
const nome = 'Carlos';
const idade = 20;
const msg = 'Olá, ' + nome +
'! Você tem ' + idade + ' anos.';
const nome = 'Carlos';
const idade = 20;
const msg = `Olá, ${nome}! Você tem ${idade} anos.`;
${expressão} para interpolar valores.
const preco = 49.90;
const qtd = 3;
console.log(`Total: R$ ${preco * qtd}`); // "Total: R$ 149.7"
console.log(`Par? ${qtd % 2 === 0 ? 'Sim' : 'Não'}`); // "Par? Não"
console.log(10 + 5); // 15 (soma)
console.log(10 - 5); // 5 (subtração)
console.log(10 * 5); // 50 (multiplicação)
console.log(10 / 3); // 3.33... (divisão)
console.log(10 % 3); // 1 (resto/módulo)
console.log(2 ** 10); // 1024 (potência)
let x = 10;
x++; // x = 11 (incremento)
x--; // x = 10 (decremento)
x += 5; // x = 15 (x = x + 5)
x -= 3; // x = 12 (x = x - 3)
x *= 2; // x = 24 (x = x * 2)
console.log('5' + 3); // "53" (concatenação!)
console.log('5' - 3); // 2 (conversão automática)
console.log(Number('5') + 3); // 8 (conversão explícita)
console.log(parseInt('10px')); // 10 (extrai o número)
// Igualdade estrita (recomendado)
5 === 5 // true
5 === '5' // false (tipos diferentes)
// Igualdade abstrata (evitar)
5 == '5' // true (converte o tipo)
// Diferença
5 !== '5' // true
5 != '5' // false
10 > 5 // true
10 < 5 // false
10 >= 10 // true
5 <= 3 // false
=== e !== para evitar surpresas com
conversão de tipos.
// Ambos precisam ser true
true && true // true
true && false // false
false && true // false
// Exemplo prático:
const idade = 20;
idade >= 18 && idade <= 65
// true
// Pelo menos um true
true || false // true
false || false // false
// Exemplo prático:
const dia = 'sábado';
dia === 'sábado' ||
dia === 'domingo'
// true
// Inverte o valor
!true // false
!false // true
// Exemplo prático:
const logado = false;
if (!logado) {
console.log('Faça login');
}
precoProduto, percentualDesconto e nomeconsole.log com template literals para exibir o resultado// Se precoProduto = 200, percentualDesconto = 15
"Olá, Maria! O produto custa R$ 200"
"Desconto de 15%: R$ 30"
"Preço final: R$ 170"
"Preço acima de R$ 100? true"
"Desconto válido? true"
Estruturas de controle, funções, arrays e objetos.