Se ho una dichiarazione nel modo seguente:Quando si dichiara una variabile in javascript, il valore predefinito è null?
var j;
fa j==null
fino a quando ho impostato uguale a qualcosa?
Se ho una dichiarazione nel modo seguente:Quando si dichiara una variabile in javascript, il valore predefinito è null?
var j;
fa j==null
fino a quando ho impostato uguale a qualcosa?
No, ha il valore di default di undefined
Ma se si desidera utilizzare la condizione !j
, funzionerà con entrambi i valori (cioè indefinito o nulli)
Nota che (j==null)
è true
, ma (j===null)
è false
... JavaScript ha valori "falsy" e regole a volte inaspettate per convertire valori, oltre a fantasioso operatore ===
per confrontare valore e tipo allo stesso tempo.
In realtà, j == null valuterà true, j === null sarà false. (Ma sì, il valore predefinito non è definito poiché j === undefined sarà vero). – SoWeLie
così scrivendo k === null si valuta su true, poiché la variabile k non esiste? suppongo anche che io possa usare il contrario e dire "if (j)", e che valuterà il falso, corretto? – thisissami
@thisissami no, genererà un ReferenceError. La cosa difficile da ottenere è che * undefined * è in realtà un valore valido. Ci sono sia 'null' che' undefined', sono simili ma differenti. –
'j == null' sarà' true', ma non perché 'j' è' null'. Invece è perché 'j' è' indefinito', ma l'operatore '==' non scrive coercizione. '==' considera 'null' e' undefined' uguali. L'operatore '===' è rigoroso e non esegue alcuna coercizione. –