Crea e testa facilmente il tuo codice JavaScript con gli snippet ed esempi predefiniti.
Variabili e Tipi di Dato▼
let variabile = 42;
Esempio
// Dichiarazione e utilizzo di una variabile
let contatore = 0;
contatore = contatore + 1;
console.log(contatore); // Output: 1
const costante = 3.14159;
Esempio
// Dichiarazione di una costante
const PI = 3.14159;
console.log("Area del cerchio: " + PI * 5 * 5);
// Output: Area del cerchio: 78.53975
const stringa = "testo";
const numero = 42;
const booleano = true;
const nullo = null;
let indefinito;
Operatori▼
// Operatori aritmetici
let a = 10;
let b = 3;
let somma = a + b;
let sottrazione = a - b;
let moltiplicazione = a * b;
let divisione = a / b;
let modulo = a % b;
let incremento = ++a;
let decremento = --b;
Esempio
// Esempio di operazioni aritmetiche
let a = 10;
let b = 3;
console.log("Somma:", a + b); // 13
console.log("Sottrazione:", a - b); // 7
console.log("Moltiplicazione:", a * b); // 30
console.log("Divisione:", a / b); // 3.3333...
console.log("Modulo:", a % b); // 1
// Operatori di confronto
let c = 5;
let d = 10;
let uguale = c === d;
let diverso = c !== d;
let maggiore = c > d;
let minore = c < d;
let maggioreUguale = c >= d;
let minoreUguale = c <= d;
Esempio
// Esempio di operatori di confronto
let x = 5;
let y = 10;
console.log("x === y:", x === y); // false
console.log("x !== y:", x !== y); // true
console.log("x > y:", x > y); // false
console.log("x < y:", x < y); // true
console.log("x >= y:", x >= y); // false
console.log("x <= y:", x <= y); // true
// Operatori logici
let attivo = true;
let autorizzato = false;
let and = attivo && autorizzato;
let or = attivo || autorizzato;
let not = !attivo;
Esempio
// Esempio di operatori logici
let attivo = true;
let autorizzato = false;
console.log("AND:", attivo && autorizzato); // false
console.log("OR:", attivo || autorizzato); // true
console.log("NOT:", !attivo); // false
// Esempio pratico
if (attivo && autorizzato) {
console.log("Utente attivo e autorizzato");
} else if (attivo || autorizzato) {
console.log("Utente attivo o autorizzato");
} else {
console.log("Utente non attivo e non autorizzato");
}
// Output: Utente attivo o autorizzato
Controllo di Flusso▼
// If
let punteggio = 85;
if (punteggio >= 90) {
console.log("Voto: A");
} else if (punteggio >= 80) {
console.log("Voto: B");
} else if (punteggio >= 70) {
console.log("Voto: C");
} else if (punteggio >= 60) {
console.log("Voto: D");
} else {
console.log("Voto: F");
}
Esempio
// Esempio di struttura if-else if-else
let punteggio = 85;
if (punteggio >= 90) {
console.log("Voto: A");
} else if (punteggio >= 80) {
console.log("Voto: B");
} else if (punteggio >= 70) {
console.log("Voto: C");
} else if (punteggio >= 60) {
console.log("Voto: D");
} else {
console.log("Voto: F");
}
// Output: Voto: B
// Switch
let giorno = 3;
let nomeGiorno;
switch (giorno) {
case 1:
nomeGiorno = "Lunedì";
break;
case 2:
nomeGiorno = "Martedì";
break;
case 3:
nomeGiorno = "Mercoledì";
break;
case 4:
nomeGiorno = "Giovedì";
break;
case 5:
nomeGiorno = "Venerdì";
break;
case 6:
case 7:
nomeGiorno = "Weekend";
break;
default:
nomeGiorno = "Giorno non valido";
}
console.log("Oggi è", nomeGiorno);
Esempio
// Esempio di switch
let giorno = 3;
let nomeGiorno;
switch (giorno) {
case 1:
nomeGiorno = "Lunedì";
break;
case 2:
nomeGiorno = "Martedì";
break;
case 3:
nomeGiorno = "Mercoledì";
break;
case 4:
nomeGiorno = "Giovedì";
break;
case 5:
nomeGiorno = "Venerdì";
break;
case 6:
case 7:
nomeGiorno = "Weekend";
break;
default:
nomeGiorno = "Giorno non valido";
}
console.log("Oggi è", nomeGiorno);
// Output: Oggi è Mercoledì
// For
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
console.log(`Passo ${i}: somma parziale = ${sum}`);
}
console.log(`Somma totale: ${sum}`);
Esempio
// Esempio di ciclo for
let somma = 0;
for (let i = 1; i <= 5; i++) {
somma += i;
console.log(`Passo ${i}: somma parziale = ${somma}`);
}
console.log(`Somma totale: ${somma}`);
// Output:
// Passo 1: somma parziale = 1
// Passo 2: somma parziale = 3
// Passo 3: somma parziale = 6
// Passo 4: somma parziale = 10
// Passo 5: somma parziale = 15
// Somma totale: 15
// While
let contatore = 0;
while (contatore < 5) {
console.log(`Contatore: ${contatore}`);
contatore++;
}
// Do-While
let count = 0;
do {
console.log(`Count: ${count}`);
count++;
} while (count < 3);
// For-of (per array)
let numeri = [10, 20, 30, 40, 50];
for (const num of numeri) {
console.log(`Numero: ${num}`);
}
// For-in (per oggetti)
let persona = { nome: "Mario", cognome: "Rossi", età: 30 };
for (const proprietà in persona) {
console.log(`${proprietà}: ${persona[proprietà]}`);
}
// Try-catch
try {
// Codice che potrebbe generare errori
console.log("Tentativo di eseguire codice");
// let risultato = variabileInesistente * 2; // Genera un errore
} catch (errore) {
console.error("Errore:", errore.message);
} finally {
console.log("Il blocco finally viene sempre eseguito");
}
Funzioni▼
// Funzione standard
function calcolaArea(larghezza, altezza) {
return larghezza * altezza;
}
let area = calcolaArea(5, 3);
console.log("L'area è:", area);
Esempio
// Esempio di funzione
function calcolaArea(larghezza, altezza) {
return larghezza * altezza;
}
let area = calcolaArea(5, 3);
console.log("L'area è:", area);
// Output: L'area è: 15
// Funzione con valori predefiniti
function saluta(nome = "Utente") {
return `Ciao, ${nome}!`;
}
console.log(saluta("Mario")); // Ciao, Mario!
console.log(saluta()); // Ciao, Utente!
// Arrow function
const quadrato = x => x * x;
console.log("Quadrato di 4:", quadrato(4));
// Arrow function con blocco
const cubo = x => {
const risultato = x * x * x;
return risultato;
};
console.log("Cubo di 3:", cubo(3));
Esempio
// Esempio di arrow function
const somma = (a, b) => a + b;
console.log("Somma:", somma(5, 3)); // Somma: 8
// Arrow function con blocco
const quadrato = x => {
const risultato = x * x;
return risultato;
};
console.log("Quadrato di 4:", quadrato(4)); // Quadrato di 4: 16
// Arrow function con array
const numeri = [1, 2, 3, 4, 5];
const quadrati = numeri.map(x => x * x);
console.log("Numeri al quadrato:", quadrati);
// Output: Numeri al quadrato: [1, 4, 9, 16, 25]
// IIFE (Immediately Invoked Function Expression)
(function() {
console.log("Questa funzione viene eseguita immediatamente");
})();
// Metodi degli array
const frutta = ["mela", "banana"];
frutta.push("arancia"); // Aggiunge alla fine
frutta.pop(); // Rimuove dall'ultimo
frutta.unshift("fragola"); // Aggiunge all'inizio
frutta.shift(); // Rimuove dal primo
frutta.splice(1, 1); // Rimuove elementi
frutta.slice(0, 1); // Estrae porzione
Esempio
// Esempio di manipolazione array
let frutta = ["mela", "banana"];
console.log("Array iniziale:", frutta);
// push - aggiunge alla fine
frutta.push("arancia");
console.log("Dopo push:", frutta);
// pop - rimuove dall'ultimo
let ultimo = frutta.pop();
console.log("Elemento rimosso con pop:", ultimo);
console.log("Dopo pop:", frutta);
// unshift - aggiunge all'inizio
frutta.unshift("fragola");
console.log("Dopo unshift:", frutta);
// shift - rimuove dal primo
let primo = frutta.shift();
console.log("Elemento rimosso con shift:", primo);
console.log("Dopo shift:", frutta);
// slice - crea una copia di una porzione
let numeri = [1, 2, 3, 4, 5];
let porzione = numeri.slice(1, 4);
console.log("Array originale:", numeri);
console.log("Porzione (slice):", porzione);
// splice - modifica l'array originale
let rimossi = numeri.splice(1, 2, 6, 7);
console.log("Elementi rimossi con splice:", rimossi);
console.log("Dopo splice:", numeri);
// Iterazione array
const numeri = [1, 2, 3, 4, 5];
// forEach
numeri.forEach((num, index) => {
console.log(`Elemento ${index}: ${num}`);
});
// map
const doppi = numeri.map(num => num * 2);
// filter
const pari = numeri.filter(num => num % 2 === 0);
// find
const maggioreDiTre = numeri.find(num => num > 3);
// reduce
const somma = numeri.reduce((acc, num) => acc + num, 0);
Esempio
// Esempio di metodi di iterazione array
const numeri = [1, 2, 3, 4, 5];
// forEach - esegue una funzione per ogni elemento
console.log("forEach:");
numeri.forEach((num, index) => {
console.log(` Elemento ${index}: ${num}`);
});
// map - crea un nuovo array trasformando ogni elemento
const doppi = numeri.map(num => num * 2);
console.log("map (doppi):", doppi);
// filter - crea un nuovo array con elementi che soddisfano una condizione
const pari = numeri.filter(num => num % 2 === 0);
console.log("filter (pari):", pari);
// find - restituisce il primo elemento che soddisfa una condizione
const maggioreDiTre = numeri.find(num => num > 3);
console.log("find (> 3):", maggioreDiTre);
// reduce - riduce l'array a un singolo valore
const somma = numeri.reduce((totale, num) => totale + num, 0);
console.log("reduce (somma):", somma);
// some - verifica se almeno un elemento soddisfa una condizione
const hasMaggioriDiQuattro = numeri.some(num => num > 4);
console.log("some (> 4):", hasMaggioriDiQuattro);
// every - verifica se tutti gli elementi soddisfano una condizione
const tuttiPositivi = numeri.every(num => num > 0);
console.log("every (> 0):", tuttiPositivi);
// Esempio di oggetto letterale
const persona = {
nome: "Mario",
cognome: "Rossi",
età: 30,
indirizzo: {
via: "Via Roma",
città: "Milano"
},
saluta() {
return `Ciao, sono ${this.nome} ${this.cognome}`;
}
};
console.log(persona.nome); // Mario
console.log(persona.indirizzo.città); // Milano
console.log(persona.saluta()); // Ciao, sono Mario Rossi
// Accesso con notazione a parentesi quadre
console.log(persona["cognome"]); // Rossi
// Aggiungere o modificare proprietà
persona.professione = "Sviluppatore";
persona.età = 31;
console.log(persona);
// Classe
class Persona {
constructor(nome, cognome, età) {
this.nome = nome;
this.cognome = cognome;
this.età = età;
}
get nomeCompleto() {
return `${this.nome} ${this.cognome}`;
}
saluta() {
return `Ciao, sono ${this.nomeCompleto}`;
}
static creaPersonaAnonima() {
return new Persona("Anonimo", "", 0);
}
}
const mario = new Persona("Mario", "Rossi", 30);
console.log(mario.nomeCompleto);
console.log(mario.saluta());
Esempio
// Esempio di classe
class Persona {
constructor(nome, cognome, età) {
this.nome = nome;
this.cognome = cognome;
this.età = età;
}
get nomeCompleto() {
return `${this.nome} ${this.cognome}`;
}
saluta() {
return `Ciao, sono ${this.nomeCompleto}`;
}
static creaPersonaAnonima() {
return new Persona("Anonimo", "", 0);
}
}
const mario = new Persona("Mario", "Rossi", 30);
console.log(mario.nomeCompleto); // Mario Rossi
console.log(mario.saluta()); // Ciao, sono Mario Rossi
const anonimo = Persona.creaPersonaAnonima();
console.log(anonimo.saluta()); // Ciao, sono Anonimo
// Ereditarietà
class Impiegato extends Persona {
constructor(nome, cognome, età, ruolo) {
super(nome, cognome, età);
this.ruolo = ruolo;
}
presentati() {
return `${this.saluta()}, sono un ${this.ruolo}`;
}
}
// Getter e Setter
const termostato = {
_temperatura: 20,
get temperatura() {
return this._temperatura;
},
set temperatura(valore) {
if (valore >= 10 && valore <= 30) {
this._temperatura = valore;
} else {
console.error("La temperatura deve essere tra 10 e 30 gradi");
}
}
};
DOM e Eventi▼
// Selezione elementi DOM (esempi)
// const elemento = document.getElementById('id');
// const elementi = document.getElementsByClassName('classe');
// const elemento = document.querySelector('.selettore');
// const elementi = document.querySelectorAll('.selettore');
// Simulazione per il test nell'editor
console.log("Seleziona elementi DOM (simulato)");
const elementiSimulati = ["div1", "div2", "div3"];
console.log("Elementi simulati:", elementiSimulati);
Esempio
// Esempio di selezione DOM
// HTML di riferimento:
//
//
Titolo pagina
//
Paragrafo 1
//
Paragrafo 2
//
// La seguente è una simulazione per l'editor
// Seleziona per ID
console.log("Seleziona elementi DOM (simulato)");
console.log("Elemento con ID 'main':", {id: "main", tagName: "DIV"});
// Seleziona per classe (simulato)
console.log("Numero di paragrafi:", 2);
// Seleziona il primo elemento che corrisponde al selettore (simulato)
console.log("Testo del titolo:", "Titolo pagina");
// Seleziona tutti gli elementi che corrispondono al selettore (simulato)
console.log("Contenuto paragrafo 1:", "Paragrafo 1");
console.log("Contenuto paragrafo 2:", "Paragrafo 2");
// Manipolazione DOM (simulato per l'editor)
console.log("Manipolazione DOM (simulato)");
// Creo un oggetto per simulare un elemento DOM
const elementoSimulato = {
content: "Contenuto originale",
attributes: {},
style: {},
classes: []
};
// Simulate text content update
elementoSimulato.content = "Nuovo testo";
console.log("Testo modificato:", elementoSimulato.content);
// Simulate attribute update
elementoSimulato.attributes.title = "Tooltip";
console.log("Attributo aggiunto:", elementoSimulato.attributes);
// Simulate style update
elementoSimulato.style.backgroundColor = "lightblue";
console.log("Stile modificato:", elementoSimulato.style);
// Simulate class manipulation
elementoSimulato.classes.push("evidenziato");
console.log("Classe aggiunta:", elementoSimulato.classes);
Esempio
// Esempio di manipolazione DOM
// Supponiamo di avere un elemento:
Contenuto
// Simulazione per l'editor
console.log("Manipolazione DOM (simulato)");
// Creo un oggetto per simulare un elemento DOM
const boxSimulato = {
content: "Contenuto originale",
attributes: {},
style: {},
classes: []
};
// Simula modifiche al contenuto
boxSimulato.content = "Nuovo testo"; // Solo testo
console.log("Nuovo contenuto:", boxSimulato.content);
boxSimulato.content = "Testo in grassetto"; // HTML interpretato
console.log("Nuovo HTML:", boxSimulato.content);
// Simula modifiche agli attributi
boxSimulato.attributes.title = "Tooltip sul box";
boxSimulato.attributes["data-id"] = "123";
console.log("Attributi:", boxSimulato.attributes);
// Simula modifiche allo stile CSS
boxSimulato.style.backgroundColor = "lightblue";
boxSimulato.style.padding = "10px";
boxSimulato.style.borderRadius = "5px";
console.log("Stile:", boxSimulato.style);
// Simula gestione classi CSS
boxSimulato.classes.push("evidenziato"); // Aggiunge una classe
console.log("Classi dopo aggiunta:", boxSimulato.classes);
// Rimuove una classe (simulato)
boxSimulato.classes = boxSimulato.classes.filter(c => c !== "nascosto");
console.log("Classi dopo rimozione:", boxSimulato.classes);
// Toggle simulato
const hasClass = boxSimulato.classes.includes("selezionato");
if (!hasClass) {
boxSimulato.classes.push("selezionato");
} else {
boxSimulato.classes = boxSimulato.classes.filter(c => c !== "selezionato");
}
console.log("Classi dopo toggle:", boxSimulato.classes);
// Eventi (simulazione per editor)
console.log("Gestione eventi (simulato)");
// Simulazione di un evento click
function simulaClick() {
console.log("Evento click simulato");
// In un ambiente reale: e.preventDefault(), e.stopPropagation()
}
// Trigger simulato
simulaClick();
Esempio
// Esempio di gestione eventi (simulato per editor)
console.log("Gestione eventi (simulato)");
// Esempio di gestione click su bottone
function gestisciClickBottone() {
console.log('Bottone cliccato!');
}
gestisciClickBottone(); // Simulazione
// Esempio di gestione click su link con preventDefault
function gestisciClickLink(event) {
// event.preventDefault(); // Impedisce la navigazione
console.log('Link cliccato, ma la navigazione è bloccata');
}
gestisciClickLink(); // Simulazione
// Esempio di gestione propagazione eventi
function gestisciClickElementoEsterno() {
console.log('Elemento esterno cliccato');
}
function gestisciClickElementoInterno(event) {
// event.stopPropagation(); // Impedisce propagazione
console.log('Elemento interno cliccato (senza propagazione)');
}
// Simulazione click sull'elemento interno
gestisciClickElementoInterno();
// In ambiente reale, l'evento non si propagherebbe all'elemento esterno
// Creazione elementi DOM (simulato)
console.log("Creazione elementi DOM (simulato)");
// Simula creazione elemento
const nuovoElementoSimulato = {
tagName: "div",
content: "",
parent: null
};
// Imposta contenuto
nuovoElementoSimulato.content = "Nuovo elemento";
// Simula aggiunta al parent
nuovoElementoSimulato.parent = "elementoParent";
console.log("Elemento creato:", nuovoElementoSimulato);
Storage e API▼
// Local Storage (simulato per editor)
console.log("Local Storage (simulato)");
// Simula un oggetto storage
const mockStorage = {};
// Simula setItem
mockStorage['username'] = 'mario_rossi';
console.log("Storage dopo setItem:", mockStorage);
// Simula getItem
const username = mockStorage['username'];
console.log("Valore letto:", username);
// Simula removeItem
delete mockStorage['username'];
console.log("Storage dopo removeItem:", mockStorage);
Esempio
// Esempio di utilizzo localStorage (simulato per editor)
console.log("Local Storage (simulato)");
// Simula un oggetto storage
const mockStorage = {};
// Simula salvataggio dati
mockStorage['username'] = 'mario_rossi';
mockStorage['preferenze'] = JSON.stringify({
tema: 'scuro',
notifiche: true
});
console.log("Storage dopo salvataggio:", mockStorage);
// Simula lettura dati
const username = mockStorage['username'];
console.log('Username salvato:', username);
const preferenzeJSON = mockStorage['preferenze'];
const preferenze = JSON.parse(preferenzeJSON);
console.log('Tema preferito:', preferenze.tema);
// Simula rimozione singola chiave
delete mockStorage['username'];
console.log("Storage dopo rimozione:", mockStorage);
// Simula pulizia completa
for (const key in mockStorage) {
delete mockStorage[key];
}
console.log("Storage dopo clear:", mockStorage);