Aprenda / JavaScript do zero

FundamentosAula 1 de 1614 min0% da trilha

Variáveis, tipos e operadores

let, const, os tipos primitivos e por que === substituiu == na maioria do código moderno.

let e const — var praticamente não se usa mais

let idade = 28;      // pode ser reatribuída depois
const nome = "Ana";  // não pode ser reatribuída

idade = 29;           // ok
nome = "Bia";         // erro: Assignment to constant variable.

const é a escolha padrão — sinaliza "isso não muda". let só quando você sabe que vai reatribuir (um contador, um acumulador). var existe por compatibilidade histórica e tem regras de escopo mais confusas — evite em código novo.

Os tipos primitivos

typeof 42          // "number"   — só existe UM tipo numérico em JS (sem int/float separados)
typeof "oi"         // "string"
typeof true         // "boolean"
typeof undefined    // "undefined" — variável declarada mas sem valor
typeof null         // "object"    — isso é um bug histórico da linguagem, aceito como está
typeof Symbol()      // "symbol"
typeof 10n           // "bigint"

== vs. === — a diferença que mais causa bug em quem começa

== converte os tipos antes de comparar (coerção); === compara o valor e o tipo, sem conversão nenhuma. Quase todo código moderno usa só ===.

0 == "0"      // true  — "0" vira número 0 antes de comparar
0 === "0"     // false — tipos diferentes (number vs string), não converte

null == undefined    // true  — caso especial da linguagem
null === undefined   // false

Template strings — interpolar sem concatenar

const nome = "Ana";
const idade = 28;

// jeito antigo
"Olá, " + nome + "! Você tem " + idade + " anos."

// template string
`Olá, ${nome}! Você tem ${idade} anos.`

Exercício

Por que const lista = [1, 2, 3]; lista.push(4); funciona, mesmo lista sendo const?

Quiz rápido

O que === verifica que == não verifica?
Por que const é a escolha padrão em vez de let?