Quando si dichiara una variabile in javascript, è il valore predefinito è null?

Se ho una dichiarazione come segue:

var j;

non j==null fino a quando ho messo uguale a qualcosa?

  • j==null sarà true, ma non perché j è null. Invece è perché j è undefined, ma il == operatore tipo di coercizione. Il == ritiene null e undefined essere uguale. Il === operatore è rigorosa, e non fa alcuna coercizione.
InformationsquelleAutor thisissami | 2012-05-12

 

One Reply
  1. 35

    No, non è il valore di default di undefined

    Ma se si desidera utilizzare il !j condizione, funziona con entrambi i valori (cioè undefined o null)

    Nota che (j==null) è true, ma (j===null) è false… JavaScript sono “falsy” valori e a volte inaspettati regole per la conversione di valori, più fantasia === operatore di confrontare il valore e il tipo allo stesso tempo.

    • In realtà, j == null sarà true, j === null sarà false. (Ma sì, il valore di default è definito come j === undefined sarà vero).
    • così la scrittura k === null a true, in quanto variabile k non esiste? inoltre presumo che posso usare il contrario, e dire “se(j)”, e che restituirà false, corretto?
    • no, non butto un ReferenceError. La cosa difficile da ottenere è che undefined è in realtà un valore valido. Ci sono sia null e undefined, sono simili ma diversi.
    • ma sì, jvaluterà come false in un contesto booleano così if (j) expr() non verrà eseguito expr.
    • No non è così. j==null sarà true se j è undefined. Vedi punti 2 e 3 in specifiche tecniche.
    • il commento è stato eliminato, ma sto per lasciare il ECMA di riferimento sulla parità il confronto.
    • Scusa, hai ragione
    • ok grazie per tutti i commenti ragazzi. la mia è una domanda che strana – quando le cose si fanno impostato a null in javascript? solo quando sono impostati manualmente a che valore?
    • Essi possono essere impostati manualmente o impostare i valori restituiti dalle funzioni, come documento.getElementById(elementThatDontExists);

Lascia un commento