๐ Benvenuto nella Lezione 2!
Bentornato Developer! ๐ Nella Lezione 1 hai imparato a selezionare elementi, reagire ai click e modificare la pagina.
Ma c'รจ un problema: il tuo codice non puรฒ "ricordare" nulla! ๐ค
Immagina di voler contare quante volte qualcuno clicca un bottone, o di voler salvare il nome dell'utente. Come fai? Con le VARIABILI!
๐ฏ Cosa Imparerai
- โ Cos'รจ una variabile e come darle "memoria" al tuo codice
- โ Come dichiarare variabili con let, const e var
- โ I diversi tipi di dati (numeri, stringhe, booleani)
- โ Come fare operazioni con le variabili
- โ Come mostrare variabili nella pagina (combinando Lezione 1 + 2!)
- โ Come creare contatori, punteggi e sistemi interattivi
๐ Analogia della Casa
Pensa alle variabili come a cassetti etichettati in una casa:
- Etichetta del cassetto = Nome della variabile (
let punteggio) - Contenuto del cassetto = Valore della variabile (
100) - Aprire il cassetto = Leggere la variabile
- Cambiare il contenuto = Modificare il valore
- Mostrare il contenuto = Usare
textContentper visualizzarlo!
๐ Collegamento con la Lezione 1
๐ค Il Problema senza Variabili
Nella Lezione 1 hai imparato a far reagire la pagina, ma...
Ogni volta che clicchi, il codice "dimentica" tutto!
Guarda questo esempio ๐
โ Senza Variabili
Ogni click cambia il testo, ma non ricorda quanti click hai fatto:
// Lezione 1: cambia solo il testo
const display = document.querySelector('#noVarDisplay');
display.textContent = 'Cambiato!';
๐ Il computer non "sa" quante volte hai cliccato
โ Con Variabili
Il codice "ricorda" quanti click hai fatto!
// Lezione 2: usa una variabile!
let contatore = 0;
bottone.addEventListener('click', function() {
contatore++; // Ricorda!
display.textContent = 'Click: ' + contatore;
});
๐ La variabile "ricorda" il valore!
๐ก Insight Chiave
Variabili = Memoria del tuo programma
Senza variabili, il tuo codice รจ come una persona con amnesia: fa le cose ma non ricorda nulla!
Con le variabili, il tuo codice puรฒ ricordare, contare, calcolare e prendere decisioni! ๐ง
๐ Demo Interattiva: Variabili in Azione
Ora che capisci il problema, guarda la potenza delle variabili!
Questa demo usa una variabile contatore che memorizza i tuoi click ๐
๐ Il Codice Dietro le Quinte
// 1. VARIABILE: memorizza il valore
let contatore = 0;
// 2. SELEZIONA elementi (Lezione 1!)
const display = document.querySelector('#demoCounter');
const bottone = document.querySelector('.demo-btn');
// 3. EVENTO: quando clicchi (Lezione 1!)
bottone.addEventListener('click', function() {
contatore++; // Aumenta la variabile
// 4. MOSTRA il nuovo valore (Lezione 1!)
display.textContent = contatore;
});
๐ค Cosa รจ Successo?
Hai appena visto Lezione 1 + Lezione 2 insieme!
- ๐ฆ Variabile memorizza il contatore
- ๐ฏ querySelector seleziona gli elementi (Lezione 1)
- โก addEventListener ascolta i click (Lezione 1)
- โ contatore++ aumenta la variabile
- ๐๏ธ textContent mostra il valore (Lezione 1)
- ๐งฎ Calcoli automatici (doppio, quadrato, percentuale)
Senza variabili, il computer dimenticherebbe tutto ad ogni click!
Con le variabili, il tuo codice ha una memoria! ๐ง โจ
๐ก Cosa Sono le Variabili?
Definizione Semplice
Una variabile รจ uno spazio nella memoria del computer dove puoi:
- ๐พ Salvare un valore
- ๐ท๏ธ Dargli un nome
- ๐ Modificarlo quando vuoi
- ๐๏ธ Mostrarlo nella pagina
๐ฏ Esempio Visivo
๐ฏ Perchรฉ Servono?
Memorizzare
Salvare dati che cambiano nel tempo (click, punteggi, input utente)
Riutilizzare
Scrivere un valore una volta, usarlo mille volte
Calcolare
Fare operazioni matematiche e logiche
Leggibilitร
Rendere il codice chiaro con nomi significativi
โ Senza Variabili vs โ Con Variabili
| Senza Variabili (โ Non Scalabile) | Con Variabili (โ Professionale) |
|---|---|
document.querySelector('#msg1').textContent = 'Ciao Mario';document.querySelector('#msg2').textContent = 'Mario, benvenuto!';console.log('Mario ha fatto login');โ Devi riscrivere "Mario" ogni volta |
let nome = "Mario";document.querySelector('#msg1').textContent = `Ciao ${nome}`;document.querySelector('#msg2').textContent = `${nome}, benvenuto!`;โ Cambi una volta, si aggiorna ovunque! |
๐ Come Dichiarare le Variabili
In JavaScript ci sono 3 modi per creare variabili: let, const, e var
1. let - La Piรน Usata
// Dichiarazione con valore iniziale
let punteggio = 0;
// Dichiarazione senza valore (undefined)
let nomeGiocatore;
// Puoi cambiare il valore dopo
punteggio = 100;
nomeGiocatore = "Anna";
- Il valore cambierร nel tempo (contatori, punteggi)
- Devi riassegnare la variabile
- Stai in dubbio (รจ la scelta piรน sicura!)
2. const - Per Valori Fissi
// Valore che NON cambia mai
const PI = 3.14159;
const MAX_GIOCATORI = 4;
const TITOLO_APP = "Il Mio Gioco";
// โ Questo darร errore!
PI = 3.14; // TypeError: Assignment to constant variable
- Il valore NON deve mai cambiare
- Vuoi proteggere il valore da modifiche accidentali
- Definisci costanti (come PI, configurazioni, elementi del DOM)
3. var - Il Vecchio Modo (Da Evitare)
// Il vecchio modo (pre-2015)
var vecchiaVariabile = 42;
// Funziona, ma ha problemi di "scope"
// โ ๏ธ NON usare var nel 2025!
let o const, mai var. Il var รจ vecchio e puรฒ causare bug difficili da trovare!
๐ Regole per Nominare le Variabili
- Lettere (a-z, A-Z)
- Numeri (ma non all'inizio!)
- Underscore (_) e dollaro ($)
let nome1 = "Ok";let _privato = "Ok";let $prezzo = "Ok";
- Spazi
- Iniziare con numeri
- Parole riservate (let, const, if, for, ecc.)
- Caratteri speciali (!@#%)
let mio nome = "โ";let 1numero = "โ";let for = "โ";
- Usa camelCase:
nomeCompleto - Nomi descrittivi:
etรnonx - Costanti MAIUSCOLE:
MAX_TENTATIVI
๐ Struttura HTML per l'Esercizio
Ecco la card dove visualizzerai le tue variabili:
<div class="user-card" id="userCard">
<div id="displayName">Nome: ?</div>
<div id="displayAge">Etร : ?</div>
<div id="displaySite">Sito: ?</div>
<div id="displayStatus">Loggato: ?</div>
</div>
#displayNameโ Mostra il nome#displayAgeโ Mostra l'etร#displaySiteโ Mostra il nome del sito#displayStatusโ Mostra se รจ loggato
โ๏ธ Prova Tu: Dichiara e Visualizza Variabili
Crea le variabili richieste e mostrali nella card usando textContent!
๐ฏ Obiettivi:
- Dichiara
let nomecon il tuo nome - Dichiara
let etรcon la tua etร - Dichiara
const NOME_SITOcon "Il Mio Sito" - Dichiara
let isLoggatocon true o false - Usa
querySelectoretextContentper mostrarli nella card
๐ญ Tipi di Dati
Le variabili possono contenere diversi tipi di dati. Ogni tipo ha caratteristiche e operazioni specifiche!
Number (Numeri)
Numeri interi o decimali
let etร = 25;
let prezzo = 19.99;
let negativo = -10;
String (Testo)
Testo tra apici o virgolette
let nome = "Mario";
let saluto = 'Ciao!';
let frase = `Ciao ${nome}`;
Boolean (Vero/Falso)
Solo due valori: true o false
let isAttivo = true;
let haPerso = false;
let maggiorenne = etร >= 18;
Undefined
Variabile dichiarata ma senza valore
let risultato;
console.log(risultato);
// undefined
Null
Valore intenzionalmente vuoto
let utente = null;
// "Nessun utente"
๐ Verificare il Tipo con typeof
// Usa typeof per vedere il tipo
let numero = 42;
let testo = "ciao";
let veroFalso = true;
console.log(typeof numero); // "number"
console.log(typeof testo); // "string"
console.log(typeof veroFalso); // "boolean"
๐ Struttura HTML per l'Esercizio
<input id="typeInput" placeholder="Scrivi un valore">
<div id="typeResult">Il risultato apparirร qui</div>
๐ฎ Prova Tu: Type Checker Interattivo
Crea un sistema che identifica automaticamente il tipo di dato inserito!
๐ฏ Cosa Devi Fare:
- Prendi il valore dall'input con
document.querySelector('#typeInput').value - Prova a convertirlo in numero con
Number() - Usa
typeofper identificare il tipo - Mostra il risultato nel div
#typeResult
๐ Esempi Interattivi per Tipo
Clicca i bottoni per vedere esempi di ogni tipo!
โ Operazioni con le Variabili
Le variabili diventano potenti quando ci fai operazioni! Vediamo come combinare valori e fare calcoli.
๐ข Operazioni Matematiche
let a = 10;
let b = 3;
// Operazioni base
let somma = a + b; // 13
let differenza = a - b; // 7
let prodotto = a * b; // 30
let divisione = a / b; // 3.333...
let resto = a % b; // 1 (resto della divisione)
let potenza = a ** b; // 1000 (10 alla terza)
๐ Incremento e Decremento
let punteggio = 0;
// Modi per aumentare di 1
punteggio = punteggio + 1; // Modo lungo
punteggio += 1; // Modo corto
punteggio++; // Modo super corto!
// Modi per diminuire di 1
punteggio = punteggio - 1;
punteggio -= 1;
punteggio--;
// Aumenta di un valore specifico
punteggio += 10; // Aumenta di 10
punteggio *= 2; // Raddoppia
๐ Operazioni con Stringhe
let nome = "Mario";
let cognome = "Rossi";
// Concatenazione (unire stringhe)
let nomeCompleto = nome + " " + cognome; // "Mario Rossi"
// Template Literals (modo moderno) โญ
let saluto = `Ciao, mi chiamo ${nome} ${cognome}!`;
let etร = 25;
let messaggio = `Ho ${etร } anni`; // "Ho 25 anni"
๐ Struttura HTML per la Calcolatrice
<input id="calcNum1" type="number">
<select id="calcOp">
<option value="+">Somma</option>
<!-- altre operazioni -->
</select>
<input id="calcNum2" type="number">
<div id="calcResult">Risultato qui</div>
<div id="calcProcess">Processo qui</div>
๐งฎ Prova Tu: Calcolatrice Live Completa
Crea una calcolatrice che mostra il processo di calcolo passo dopo passo!
๐ฏ Cosa Devi Fare:
- Prendi i valori da
#calcNum1e#calcNum2 - Prendi l'operatore da
#calcOp - Esegui il calcolo usando if/else o switch
- Mostra il processo in
#calcProcess - Mostra il risultato in
#calcResultValue
๐ข Esercizio: Contatore Interattivo
Ora mettiamo insieme tutto: variabili + eventi + operazioni + visualizzazione!
๐ Cosa Userai in Questo Esercizio
Per memorizzare il contatore
Per selezionare elementi
Per gestire i click
++, --, +=, calcoli
Per mostrare i valori
Per cambiare colori
๐ Struttura HTML del Contatore
<!-- Display contatore -->
<div id="counterDisplay">0</div>
<!-- Statistiche -->
<div id="counterDouble">0</div>
<div id="counterSquare">0</div>
<!-- Controlli -->
<button id="btnIncrement">+1</button>
<button id="btnDecrement">-1</button>
<button id="btnReset">Reset</button>
#counterDisplayโ Display principale#counterDoubleโ Doppio del contatore#counterSquareโ Quadrato del contatore#btnIncrementโ Bottone +1#btnDecrementโ Bottone -1#btnResetโ Bottone Reset
โ๏ธ Progetto: Crea il Tuo Contatore
Completa il codice per creare un contatore funzionante con statistiche!
๐ฏ Obiettivi:
- Crea una variabile
contatoreche parte da 0 - Quando clicchi "+1", aumenta il contatore
- Quando clicchi "-1", diminuisci il contatore
- Quando clicchi "Reset", riporta a 0
- Calcola e mostra il doppio e il quadrato
- BONUS: Cambia il colore del display in base al valore
๐ก Pro Tips per il Contatore
- Usa
contatore++invece dicontatore = contatore + 1 - Chiama sempre
aggiornaDisplay()dopo ogni modifica del contatore - Per il colore: usa
if (contatore < 0) { display.style.color = 'red'; } - Per il quadrato: usa
contatore * contatoreocontatore ** 2
โ๏ธ Esercizio Guidato: Sistema di Punti
Creiamo un sistema dove l'utente puรฒ guadagnare punti e vedere il punteggio aggiornato in tempo reale!
๐ Cosa Devi Fare
- Crea una variabile
puntiche parte da 0 - Quando clicchi "+5 Punti", aggiungi 5 punti
- Quando clicchi "+10 Punti", aggiungi 10 punti
- Mostra il punteggio aggiornato nel display
- BONUS: Cambia colore del display in base ai punti
- 0-20 punti: rosso
- 21-50 punti: giallo
- 51+ punti: verde
๐ Struttura HTML da Usare
Ecco l'HTML con cui lavorerai. Memorizza questi ID:
<!-- Il display del punteggio -->
<div class="points-display">
<div id="pointsValue">0</div>
</div>
<!-- I bottoni -->
<button id="btn5Points">+5 Punti</button>
<button id="btn10Points">+10 Punti</button>
<button id="btnResetPoints">Reset</button>
#pointsValueโ Il numero del punteggio#btn5Pointsโ Bottone "+5 Punti"#btn10Pointsโ Bottone "+10 Punti"#btnResetPointsโ Bottone "Reset"
๐พ Esercizi Pratici da Scaricare
Vuoi praticare sul tuo computer? Ho preparato 3 esercizi completi che puoi scaricare e completare offline, sul tuo PC!
Ogni esercizio include HTML e CSS giร pronti - tu devi solo completare il JavaScript seguendo le istruzioni nei commenti! ๐
Scarica Tutti gli Esercizi
3 esercizi progressivi + soluzioni complete
๐ฅ Scarica ZIP (150 KB)
Scompatta lo ZIP, apri index.html di un esercizio e inizia a programmare!
๐ข Contatore Base
Crea un contatore che aumenta e diminuisce. Imparerai a gestire variabili, eventi click, e a mostrare valori aggiornati.
๐ Calcolatrice Etร
L'utente inserisce l'anno di nascita e tu calcoli etร , giorni vissuti, e molto altro. Input, calcoli e condizioni!
๐ฒ Gioco Indovina Numero
Il computer pensa un numero da 1 a 100, tu provi a indovinarlo! Numero random, confronti, punteggio e cronologia.
๐ Come Usare gli Esercizi Scaricati
- ๐ฆ Scompatta lo ZIP sul tuo computer in una cartella a tua scelta
-
๐ Entra nella cartella di un esercizio (es:
esercizio-01-contatore-base) -
๐ Apri
index.htmlnel browser (doppio click o trascinalo) - ๐ Leggi gli obiettivi e le istruzioni nella pagina
-
๐ป Apri
script.jscon un editor di testo (VS Code, Notepad++, ecc.) -
โ๏ธ Completa il codice dove vedi
// COMPLETA QUI - ๐พ Salva e ๐ ricarica la pagina HTML per testare
-
๐ Se ti blocchi, guarda
soluzione.jsper vedere come va fatto
๐ฆ Cosa Include il Download
Struttura giร pronta e funzionante
Design moderno e responsive
Commenti step-by-step per guidarti
File soluzione.js con spiegazioni
Hints nella pagina quando ne hai bisogno
Guida completa e troubleshooting
๐ก Pro Tips
Premi F12 nel browser e vai in "Console" per vedere eventuali errori
Ogni volta che modifichi script.js, salva e ricarica la pagina per vedere i cambiamenti
Aggiungi console.log(variabile) per vedere i valori delle variabili
Cerca di capire ogni riga! Modificare e sperimentare รจ il modo migliore per imparare
๐ Pronto a Mettere in Pratica?
Scarica gli esercizi e inizia a programmare sul tuo computer!
๐ฅ Scarica Esercizi (150 KB)Ricorda: sbagliare รจ parte dell'apprendimento! ๐ช
๐ฎ Progetto Finale: Contatore Avanzato Multi-Funzione
ร il momento del progetto vero! ๐
Creerai un contatore professionale con:
- โ Incremento e decremento personalizzabile
- โ Reset e salvataggio
- โ Statistiche in tempo reale
- โ Effetti visivi e feedback
๐ฏ Obiettivi del Progetto
- โ Contatore che aumenta e diminuisce
- โ Input per scegliere di quanto incrementare
- โ Mostra il doppio, il quadrato e la percentuale
- โ Salva il record massimo raggiunto
- โ Colori che cambiano in base al valore
๐ Riferimento Elementi HTML
Prima di iniziare, ecco tutti gli ID che userai:
<!-- Display principale -->
<div id="projectCounter">0</div>
<!-- Statistiche -->
<div id="projectDouble">0</div>
<div id="projectSquare">0</div>
<div id="projectPercent">0%</div>
<div id="projectRecord">0</div>
<!-- Controlli -->
<input id="projectIncrement" type="number">
<button id="projectBtnInc">Aumenta</button>
<button id="projectBtnDec">Diminuisci</button>
<button id="projectBtnReset">Reset</button>
๐ Il Progetto Live
๐ป Completa il Codice JavaScript
Segui i commenti e completa il codice:
๐ฏ Conclusione: Hai Padroneggiato le Variabili!
โ Recap: Cosa Hai Imparato
- โ Cosa sono le variabili e perchรฉ danno "memoria" al tuo codice
- โ
Come dichiarare variabili con
let,const,var - โ I diversi tipi di dati: number, string, boolean, undefined, null
- โ Operazioni matematiche (+, -, *, /, %, **) e con stringhe
- โ Come combinare variabili con DOM manipulation (Lezione 1 + 2!)
- โ Come creare contatori, calcolatrici e sistemi interattivi
๐ I Tuoi Achievement
Variabili Master
Sai dichiarare e usare variabili
Matematico
Padroneggi tutte le operazioni
Visualizzatore
Mostri dati in tempo reale
Problem Solver
Hai completato tutti gli esercizi
๐ Challenge: Vai Oltre!
Prova a modificare il progetto finale aggiungendo:
- ๐จ Animazioni quando il contatore cambia
- โฐ Un timer che incrementa automaticamente ogni secondo
- ๐ฒ Un bottone "Random" che imposta un valore casuale
- ๐ Mostra la media di tutti i valori inseriti
- ๐ Sistema di achievements ("Hai raggiunto 100!")
๐ Concetti Chiave da Ricordare
๐ฆ Variabili = Memoria
Le variabili memorizzano dati che puoi riutilizzare e modificare
๐ let vs const
Usa let per valori che cambiano, const per valori fissi
๐ญ Tipi di Dati
Number, String, Boolean - ogni tipo ha operazioni specifiche
๐๏ธ Visualizzazione
Combina variabili con querySelector e textContent
๐ฌ Esercizi Extra per Casa
Prova a creare da solo (usando tutto quello che hai imparato):
- Calcolatore IMC: Input peso e altezza, calcola e mostra l'IMC con colori diversi
- Convertitore Valute: Euro โ Dollaro con tasso di cambio personalizzabile
- Cronometro Semplice: Conta i secondi con Start/Stop/Reset
- Generatore di Etร : Inserisci anno di nascita, mostra etร e anno di pensionamento
๐ก Suggerimento: Combina variabili + eventi + DOM manipulation!
Sperimenta e divertiti! Il modo migliore per imparare รจ fare e sbagliare! ๐ช