Ci sono DUE cose che devi capire riguardo a undefined ...
- il tipo
undefined che può avere solo un valore .
- la variabile
undefined
Ora leggi attentamente quanto segue ...
-
Ci sono così tanti valori di tipo number (10, 10.01, 1e1). Ma può esserci solo un valore di tipo undefined , e quel valore è memorizzato nella variabile% codice%. Quel valore non ha rappresentazione letterale - ad esempio, valori numerici undefined , 1 , 100 sono tutti letterali di tipo numero, ma il valore memorizzato in la variabile 1e-1 non ha un formato letterale.
-
undefined è una variabile, solo una variabile normale, che JavaScript dichiara e assegna a esso il valore di tipo undefined nell'ambito globale. Quindi puoi fare tutto quanto segue ...
typeof undefined; // "undefined"
undefined = 100;
typeof undefined; // "number"
undefined = void 0;
typeof undefined; // "undefined"
window.undefined === undefined; // true
window.undefined === void 0; // true
- se non vuoi usare la variabile
undefined , puoi generare il valore di tipo undefined con l'espressione undefined - il cui unico scopo è restituire un valore di tipo void 0 .
...can anyone please explain to me why this thing has been inserted into JavaScript...
NO. Proprio come nessuno può spiegare perché le variabili non dichiarate vadano a livello globale anziché locale.
Devi solo allenarti a elegante usarlo invece di cercare di trovare giustificazioni per la sua esistenza.
...we have null value...
Sebbene undefined possa fare cose che fa null , è più o meno correlato a undefined piuttosto che a scalari. Infatti, JavaScript considera objects stesso un oggetto - null restituisce "oggetto".
A mio parere, la linea di fondo è NON provare a ragionare gli scopi assoluti di typeof null e undefined - e usarli nel tuo codice in modo intelligente, in modo che il tuo codice sia leggibile, mantenibile e riusabile.