⚡ JavaScript

Aqui está a tradução do artigo de teoria de programação do Russo para o Português, seguindo todas as regras estabelecidas.

```html

O que é isso e para que serve?

Imagine que você é um robô que executa comandos. Para tomar decisões, você precisa saber comparar coisas e verificar condições. Por exemplo:

  • Comparação: "Você tem 100 reais?" (você compara seu dinheiro com o número 100).
  • Lógica: "Você tem 100 reais E não está com fome?" (você verifica duas condições ao mesmo tempo).

Em JavaScript, os operadores de comparação e os operadores lógicos ajudam o computador a responder a essas perguntas. O resultado será sempre true (verdadeiro) ou false (falso). É como um semáforo: verde — pode ir (true), vermelho — pare (false).

Para que serve isso? Sem eles, os programas seriam entediantes — eles apenas executariam comandos em ordem. Mas com eles, o programa pode reagir a diferentes situações: por exemplo, se o usuário digitou a senha correta — deixá-lo entrar, se não — mostrar um erro.

Em Python, esses operadores funcionam quase da mesma forma, mas em JavaScript há suas peculiaridades. Vamos analisá-los.

Exemplos de código com explicação

1. Operadores básicos de comparação: >, <, >=, <=

Os mais simples — como na aula de matemática. Comparamos números:

// Exemplo 1: Maior ou menor?
let idade = 12;
let podeEntrar = idade >= 12; // Pode entrar se a idade for 12 ou mais?
console.log(podeEntrar); // Exibe: true (porque 12 >= 12 — verdadeiro)

// Exemplo 2: Comparação com um limite
let temperatura = 30;
let estaQuente = temperatura > 25;   // Maior que 25?
console.log(estaQuente); // true (30 > 25 — verdadeiro)

let estaFrio = temperatura < 10; // Menor que 10?
console.log(estaFrio); // false (30 não é menor que 10)

// Exemplo 3: Strings também podem ser comparadas!
console.log("abacaxi" > "banana"); // false
// Por quê? As letras são comparadas em ordem alfabética: 'a' (1ª letra) é menor que 'b' (2ª letra)
// Em Python é a mesma coisa, mas a sensibilidade a maiúsculas/minúsculas é diferente

Importante: Em JavaScript, as strings são comparadas pelo código Unicode (como em uma tabela). "a" é menor que "z", e "A" é menor que "a". É como um dicionário: primeiro vêm as letras maiúsculas, depois as minúsculas.

2. Operadores de igualdade: == e ===

Aqui começa a parte mais interessante! Em JavaScript, existem duas maneiras de verificar se os valores são iguais:

  • == — "igualdade não estrita" (compara os valores, mas pode converter os tipos)
  • === — "igualdade estrita" (compara o valor e o tipo de dado)
// Exemplo 4: Comparação de números e strings
let numero = 5;
let string = "5";

console.log(numero == string);   // true — porque 5 é igual a 5 (JavaScript converteu a string em número)
console.log(numero === string);  // false — porque número (number) não é igual a string (string)!

// Em Python isso não existe: "5" == 5 resulta em False imediatamente, sem conversão

// Exemplo 5: Comparação com true/false
console.log(1 == true);  // true — porque true é convertido para 1
console.log(1 === true); // false — tipos diferentes (número vs boolean)

console.log(0 == false); // true
console.log(0 === false); // false

// Exemplo 6: Valores vazios
console.log(null == undefined); // true — regra especial do JS
console.log(null === undefined); // false — tipos diferentes

// Em Python não existe undefined, existe apenas None, e ele não é igual a nada, exceto a si mesmo

Dica para iniciantes: Use sempre === (igualdade estrita) para evitar surpresas. É como na matemática: 5 e "5" são coisas diferentes, mesmo que pareçam semelhantes.

3. Operador lógico && (E)

O operador "E" (AND) retorna true apenas se ambas as condições forem verdadeiras. Na vida real é como: "Vou passear se fizer a lição de casa E minha mãe permitir".

// Exemplo 7: Verificando duas condições
let idade = 14;
let temIngresso = true;

let podeIr_ao_cinema = (idade >= 12) && (temIngresso === true);
console.log(podeIr_ao_cinema); // true — a idade é adequada E tem ingresso

// Se a idade fosse 10:
idade = 10;
podeIr_ao_cinema = (idade >= 12) && (temIngresso === true);
console.log(podeIr_ao_cinema); // false — a primeira condição é falsa, a segunda é verdadeira, mas o E exige ambas

// Exemplo 8: Condição complexa
let nota = 4;
let comportamento = "otimo";

let seraElogiado = (nota === 5) && (comportamento === "otimo");
console.log(seraElogiado); // false — a nota não é 5, embora o comportamento seja ótimo

// Em Python é escrito da mesma forma: and

Dica útil: JavaScript é "preguiçoso" — se a primeira condição em && for falsa, ele nem verifica a segunda. Isso é chamado de "curto-circuito". Economizamos tempo!

4. Operador lógico || (OU)

O operador "OU" (OR) retorna true se pelo menos uma condição for verdadeira. Como na vida: "Vou passear se fizer a lição de casa OU se estiver sol lá fora".

// Exemplo 9: Escolha entre duas opções
let temDinheiro = false;
let temPresente = true;

let podeComprarJogo = temDinheiro || temPresente;
console.log(podeComprarJogo); // true — não tem dinheiro, mas tem presente (uma condição é verdadeira)

// Exemplo 10: Verificação de idade
let idadeUsuario = 17;
let entradaPermitida = (idadeUsuario >= 18) || (idadeUsuario >= 16 && temIngresso);
// Se idade >=18 OU (idade >=16 E tem ingresso)
console.log(entradaPermitida); // false — 17 não é >=18, e embora 17>=16, temIngresso não foi definido (undefined — que é false)

// Exemplo 11: Valores padrão
let nome = "";
let nomeExibido = nome || "Convidado";
console.log(nomeExibido); // "Convidado" — porque uma string vazia é considerada false

// Em Python: nome or "Convidado" — funciona da mesma forma

Detalhe: || também é "preguiçoso" — se a primeira condição for verdadeira, a segunda não é verificada. Isso é usado para definir valores padrão.

5.