In JavaScript, `undefined` e `null` sono entrambi tipi speciali che hanno solo un valore ognuno, cioè “undefined” e “null” rispettivamente.
`undefined` significa che una variabile è stata dichiarata ma non è stata assegnata alcun valore. Ad esempio:
```
var testVar;
console.log(testVar); // Risultato: undefined
```
D’altro canto, `null` in JavaScript è un assegnamento di un valore. Si utilizza per indicare o rappresentare nessun valore o nessun oggetto. Ciò significa che, diversamente da ‘undefined’, una variabile viene dichiarata e il valore è assegnato esplicitamente a `null`.
```
var testVar = null;
console.log(testVar); // Risultato: null
```
In sintesi, `undefined` è un tipo e un valore che rappresenta l’assenza di un valore assegnato, mentre `null` è un tipo e un valore che rappresenta l’assenza di un valore o di un oggetto.