← Back to course

Operatori e Condizioni

Operatori e Condizioni

Bentornato.

Nella lezione precedente hai imparato variabili e tipi di dati.

JavaScript ora può ricordare le cose.

Molto impressionante.

Oggi insegniamo a JavaScript a prendere decisioni.

Qui il codice diventa più interessante.

Finora JavaScript poteva dire:

“Conosco il prezzo.”

Oggi JavaScript può dire:

“Se il prezzo è troppo alto, mostra un avviso.”

Questo è un grande passo.

I programmi sono pieni di decisioni:

JavaScript usa operatori e condizioni per decidere cosa deve succedere.

In pratica, oggi JavaScript inizia a giudicare le situazioni.

Educatamente.

Più o meno.

Cosa Imparerai

In questa lezione imparerai:

Alla fine di questa lezione, JavaScript sarà capace di prendere decisioni di base.

Decisioni piccole.

Decisioni utili.

Non decisioni di vita.

Per favore, non lasciare ancora che JavaScript scelga il tuo taglio di capelli.

Crea il Progetto

Crea una cartella per questa lezione:

mkdir javascript-lesson3
cd javascript-lesson3
touch index.html
touch script.js

Il progetto dovrebbe essere così:

javascript-lesson3/
  index.html
  script.js

Apri la cartella nel tuo editor.

Useremo prima la console.

Poi mostreremo i risultati nella pagina.

Passo dopo passo.

Niente sprint nel caos.

Scrivi l’HTML

Apri index.html e aggiungi questo:

<!DOCTYPE html>
<html lang="it">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Operatori e Condizioni</title>
</head>
<body>
  <h1>Operatori e Condizioni</h1>
  <p>Apri la console del browser per vedere l’output di JavaScript.</p>

  <script src="script.js"></script>
</body>
</html>

Apri il file nel browser.

Apri la console:

Ora JavaScript è pronto a calcolare e giudicare.

Una combinazione pericolosa.

Operatori Aritmetici

Gli operatori aritmetici servono per la matematica.

Esempio:

const a = 10;
const b = 3;

console.log(a + b);
console.log(a - b);
console.log(a * b);
console.log(a / b);

Output:

13
7
30
3.3333333333333335

Operatori aritmetici comuni:

+   addizione
-   sottrazione
*   moltiplicazione
/   divisione
%   resto
**  elevamento a potenza

Esempio:

const number = 10;

console.log(number % 3);
console.log(2 ** 3);

Output:

1
8

10 % 3 restituisce 1, perché 10 diviso 3 lascia resto 1.

2 ** 3 significa 2 elevato alla potenza di 3.

Quindi:

2 * 2 * 2 = 8

JavaScript può fare matematica.

A volte in modo troppo onesto.

Ma può farla.

Operatori di Assegnazione

Conosci già questo:

let score = 10;

Il simbolo = assegna un valore.

Non significa “uguale” come nella lezione di matematica.

Significa:

“Metti questo valore in questa variabile.”

Esempio:

let score = 10;

score = 20;

console.log(score);

Output:

20

Puoi anche aggiornare valori usando operatori scorciatoia:

let points = 10;

points += 5;
console.log(points);

points -= 3;
console.log(points);

points *= 2;
console.log(points);

points /= 4;
console.log(points);

Output:

15
12
24
6

Sono scorciatoie.

points += 5;

significa:

points = points + 5;

Utile.

Breve.

Meno digitazione.

Le dita approvano.

Operatori di Confronto

Gli operatori di confronto confrontano valori e restituiscono true o false.

Esempio:

const age = 18;

console.log(age >= 18);
console.log(age < 18);

Output:

true
false

Operatori di confronto comuni:

>    maggiore di
<    minore di
>=   maggiore o uguale a
<=   minore o uguale a
===  stesso valore e stesso tipo
!==  valore o tipo diverso

Esempio:

const price = 100;

console.log(price > 50);
console.log(price < 50);
console.log(price === 100);
console.log(price !== 200);

Output:

true
false
true
true

Gli operatori di confronto sono la base delle condizioni.

Aiutano JavaScript a decidere.

Se la risposta è true, fai qualcosa.

Se la risposta è false, fai qualcos’altro.

Molto utile.

Molto giudicante.

Differenza tra = e ===

Questo è importante.

Molto importante.

Non saltarlo.

= assegna un valore.

const age = 33;

=== confronta un valore.

console.log(age === 33);

Esempio:

const age = 33;

console.log(age === 33);
console.log(age === 40);

Output:

true
false

Non scrivere questo dentro una condizione:

if (age = 33) {
  console.log("Age is 33");
}

Quella è assegnazione, non confronto.

Usa questo:

if (age === 33) {
  console.log("Age is 33");
}

Un = significa:

“Salva questo.”

Tre === significano:

“Confronta questo.”

Questo errore è comune.

JavaScript non sempre ti salva.

A volte JavaScript ti guarda cadere e dice:

“Interessante.”

Evita == per Ora

JavaScript ha anche ==.

Esempio:

console.log(5 == "5");

Questo restituisce:

true

Perché?

Perché == prova a convertire i valori prima di confrontarli.

Questo può creare confusione.

Usa === invece.

Meglio:

console.log(5 === "5");

Output:

false

Perché?

Perché un valore è un numero e l’altro è una stringa.

Per principianti, regola semplice:

Usa ===.

Usa !==.

Evita ==.

Le tue future sessioni di debug saranno più corte.

E il caffè resterà più caldo.

if Statement

Un if statement esegue codice solo quando una condizione è vera.

Esempio:

const age = 20;

if (age >= 18) {
  console.log("Sei maggiorenne.");
}

Output:

Sei maggiorenne.

Struttura:

if (condition) {
  // il codice parte se la condizione è true
}

Esempio:

const isLoggedIn = true;

if (isLoggedIn) {
  console.log("Bentornato!");
}

La condizione è true, quindi il messaggio appare.

Se la condizione è false, il codice dentro il blocco non parte.

JavaScript è severo.

Niente true?

Niente azione.

else Statement

else parte quando la condizione dell’if è false.

Esempio:

const age = 16;

if (age >= 18) {
  console.log("Puoi entrare.");
} else {
  console.log("Sei troppo giovane.");
}

Output:

Sei troppo giovane.

Questo significa:

Se age è maggiore o uguale a 18, mostra il primo messaggio.

Altrimenti, mostra il secondo messaggio.

JavaScript ora è diventato un piccolo buttafuori digitale.

Con parentesi graffe.

else if Statement

Usa else if quando hai più di due possibilità.

Esempio:

const score = 75;

if (score >= 90) {
  console.log("Eccellente!");
} else if (score >= 60) {
  console.log("Buon lavoro!");
} else {
  console.log("Continua a praticare.");
}

Output:

Buon lavoro!

JavaScript controlla dall’alto verso il basso.

Prima condizione:

score >= 90

False.

Seconda condizione:

score >= 60

True.

Quindi JavaScript esegue quel blocco e si ferma.

Non continua a controllare dopo aver trovato una condizione vera.

Efficiente.

Quasi sospettosamente efficiente.

Operatori Logici

Gli operatori logici combinano condizioni.

Operatori logici comuni:

&&   and
||   or
!    not

&& significa AND

Entrambe le condizioni devono essere vere.

const age = 25;
const hasTicket = true;

if (age >= 18 && hasTicket) {
  console.log("Puoi entrare.");
}

Questo significa:

L’età deve essere almeno 18.

E l’utente deve avere un biglietto.

Entrambe.

Niente biglietto?

Niente ingresso.

Anche se l’utente fa gli occhi tristi a JavaScript.

|| significa OR

Almeno una condizione deve essere vera.

const isAdmin = false;
const isEditor = true;

if (isAdmin || isEditor) {
  console.log("Puoi modificare questa pagina.");
}

Questo significa:

Se l’utente è admin O editor, può modificare.

Una condizione vera basta.

JavaScript dice:

“Abbastanza. Entra.”

! significa NOT

! inverte un boolean.

const isLoggedIn = false;

if (!isLoggedIn) {
  console.log("Per favore, fai login.");
}

!isLoggedIn significa:

“non loggato.”

Dato che isLoggedIn è false, !isLoggedIn diventa true.

All’inizio può sembrare strano.

Ma è molto utile.

È il modo di JavaScript per dire:

“In realtà, il contrario.”

Costruisci un Esempio Login

Sostituisci script.js con questo:

const userName = "Viktor";
const isLoggedIn = true;
const isAdmin = false;

if (isLoggedIn && isAdmin) {
  console.log(`Benvenuto admin ${userName}.`);
} else if (isLoggedIn) {
  console.log(`Benvenuto ${userName}.`);
} else {
  console.log("Per favore, fai login.");
}

Output:

Benvenuto Viktor.

Perché?

Quindi JavaScript mostra il messaggio normale di benvenuto.

Bene.

L’utente entra.

Ma senza poteri admin.

Niente corona digitale oggi.

Mostra Condizioni nella Pagina

Ora facciamo un piccolo esempio di disponibilità prodotto.

Aggiorna index.html:

<!DOCTYPE html>
<html lang="it">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Operatori e Condizioni</title>

  <style>
    body {
      font-family: Arial, sans-serif;
      max-width: 700px;
      margin: 60px auto;
      padding: 0 24px;
      background-color: #f3f4f6;
      color: #111827;
    }

    .card {
      background-color: white;
      padding: 24px;
      border: 2px solid #e5e7eb;
      border-radius: 18px;
    }

    .success {
      color: #15803d;
      font-weight: 700;
    }

    .warning {
      color: #b45309;
      font-weight: 700;
    }

    h1 {
      font-size: 42px;
    }

    p {
      font-size: 20px;
      line-height: 1.6;
    }
  </style>
</head>
<body>
  <h1>Operatori e Condizioni</h1>

  <div class="card">
    <h2 id="productName"></h2>
    <p id="productPrice"></p>
    <p id="productStatus"></p>
  </div>

  <script src="script.js"></script>
</body>
</html>

Ora aggiorna script.js:

const productName = "JavaScript Course";
const price = 49;
const budget = 60;
const isAvailable = true;

const productNameElement = document.getElementById("productName");
const productPriceElement = document.getElementById("productPrice");
const productStatusElement = document.getElementById("productStatus");

productNameElement.textContent = productName;
productPriceElement.textContent = `Prezzo: €${price}`;

if (isAvailable && price <= budget) {
  productStatusElement.textContent = "Buone notizie! Questo prodotto è disponibile e rientra nel tuo budget.";
  productStatusElement.className = "success";
} else if (isAvailable && price > budget) {
  productStatusElement.textContent = "Il prodotto è disponibile, ma supera il tuo budget.";
  productStatusElement.className = "warning";
} else {
  productStatusElement.textContent = "Spiacente, questo prodotto non è disponibile.";
  productStatusElement.className = "warning";
}

Aggiorna il browser.

Dovresti vedere le informazioni del prodotto e un messaggio di stato.

Prova a cambiare:

const budget = 30;

Poi aggiorna.

Prova a cambiare:

const isAvailable = false;

Aggiorna di nuovo.

Ora JavaScript mostra messaggi diversi in base ai dati.

Questa è vera logica condizionale.

La pagina non sta più solo mostrando informazioni.

Sta decidendo cosa mostrare.

Tiny brain unlocked.

Errori Comuni

Usare = al Posto di ===

Sbagliato:

if (age = 18) {
  console.log("Adult");
}

Corretto:

if (age === 18) {
  console.log("Adult");
}

Un = assegna.

Tre === confrontano.

Tatuatelo nell’anima da developer.

O semplicemente ricordalo.

Fa meno male.

Dimenticare le Parentesi Graffe

Sbagliato:

if (isAvailable)
  console.log("Available");
  console.log("Buy now");

Questo può creare confusione.

Usa le parentesi graffe:

if (isAvailable) {
  console.log("Available");
  console.log("Buy now");
}

Le parentesi graffe rendono il blocco chiaro.

Sono piccole.

Sono graffe.

Sono importanti.

Condizioni nell’Ordine Sbagliato

Esempio:

const score = 95;

if (score >= 60) {
  console.log("Good");
} else if (score >= 90) {
  console.log("Excellent");
}

Questo stampa:

Good

Perché?

Perché score >= 60 è true, quindi JavaScript si ferma lì.

Meglio:

if (score >= 90) {
  console.log("Excellent");
} else if (score >= 60) {
  console.log("Good");
}

Controlla prima le condizioni più specifiche.

JavaScript legge dall’alto verso il basso.

Come una persona molto letterale.

Pratica

Crea variabili:

Regole:

Esempio:

const userName = "Anna";
const age = 22;
const hasTicket = true;
const isVip = false;

if (isVip) {
  console.log(`Welcome VIP, ${userName}.`);
} else if (age >= 18 && hasTicket) {
  console.log(`${userName}, you can enter.`);
} else if (age < 18) {
  console.log(`${userName}, you are too young.`);
} else {
  console.log(`${userName}, you need a ticket.`);
}

Cambia i valori e testa tutti i risultati possibili.

Non leggerlo soltanto.

Eseguilo.

Rompilo.

Sistemalo.

JavaScript rispetta l’azione.

Più o meno.

Mini Sfida

Crea un calcolatore di sconto.

Variabili:

Regole:

Mostra il risultato nella pagina.

Usa:

Bonus:

Aggiungi classi CSS diverse per messaggi success e warning.

Questo è un pattern reale.

Prezzi.

Budget.

Messaggi.

Condizioni.

Il web è praticamente questo, ma con più riunioni.

Riassunto

Oggi hai imparato che:

Questo è un passo importante.

Ora il tuo codice può scegliere.

Non perfettamente.

Non sempre saggiamente.

Ma può scegliere.

Ed è così che iniziano le applicazioni interattive.

Prossima Lezione

Nella prossima lezione impareremo le funzioni.

Le funzioni aiutano a riusare codice ed evitare ripetizioni.

Perché se copi lo stesso codice dieci volte, JavaScript magari lo esegue.

Ma il tuo futuro io piangerà in silenzio.