Undefined
In JavaScript, undefined è un valore primitivo che rappresenta l’assenza di un valore assegnato. È uno dei tipi di dato fondamentali del linguaggio e viene utilizzato dal motore JavaScript per indicare che una variabile o una proprietà esiste, ma non ha ancora un valore definito.
Cos’è undefined
undefined è:
- un valore
- un tipo di dato
- una parola chiave riservata di JavaScript
Quando una variabile viene dichiarata ma non inizializzata, il suo valore è undefined.
let a;
console.log(a); // undefinedQuando una variabile è undefined
Una variabile o un’espressione restituisce undefined nei seguenti casi:
1. Variabile dichiarata ma non inizializzata
let nome;
console.log(nome); // undefined2. Proprietà inesistente di un oggetto
const user = { name: "Luca" };
console.log(user.age); // undefinedLa proprietà age non esiste, quindi il valore restituito è undefined.
3. Funzione senza return
Se una funzione non restituisce nulla, il valore di ritorno è undefined.
function saluta() {
console.log("Ciao");
}
console.log(saluta()); // undefined4. Parametro mancante
Se una funzione viene chiamata senza fornire un argomento, il parametro assume valore undefined.
function stampa(nome) {
console.log(nome);
}
stampa(); // undefined5. Accesso fuori dai limiti di un array
const numeri = [1, 2, 3];
console.log(numeri[5]); // undefinedundefined vs variabile non dichiarata
Una variabile non dichiarata genera un errore:
console.log(x); // ReferenceErrorUna variabile dichiarata ma non inizializzata vale undefined:
let x;
console.log(x); // undefinedConfronti con undefined
Confronto stretto (===)
let a;
console.log(a === undefined); // trueConfronto non stretto (==)
let a;
console.log(a == undefined); // trueCon ==, undefined è considerato uguale anche a null.
Differenza tra undefined e null
undefined | null |
|---|---|
| Valore assegnato automaticamente | Valore assegnato manualmente |
| Indica assenza non intenzionale | Indica assenza intenzionale |
Tipo: undefined | Tipo: object (storico) |
let a;
let b = null;
console.log(a); // undefined
console.log(b); // nulltypeof undefined
console.log(typeof undefined); // "undefined"Questo permette di verificare in modo sicuro se una variabile è undefined.
Assegnare undefined
È possibile assegnare manualmente undefined, ma non è una buona pratica.
let x = undefined; // sconsigliatoÈ preferibile usare null per indicare volontariamente l’assenza di un valore.
Uso pratico
Controllare se un valore esiste
if (variabile === undefined) {
console.log("Valore non definito");
}Oppure:
if (typeof variabile === "undefined") {
console.log("Variabile non definita");
}Comportamento nei booleani
undefined è un valore falsy.
if (undefined) {
console.log("vero");
} else {
console.log("falso"); // viene eseguito
}Riepilogo
undefinedindica che una variabile esiste ma non ha valore.- È assegnato automaticamente da JavaScript.
- È diverso da
null. - È un valore falsy.
- Il suo tipo è
"undefined". - Non dovrebbe essere assegnato manualmente.
Comprendere undefined è essenziale per evitare bug, controllare dati mancanti e scrivere codice più robusto.