2014-09-02 22 views

risposta

2
var foo = false; 


if(!foo) { 
    // will log 
    console.log("foo is defined but false"); 
} 

if(angular.isUndefined(foo)){ 
    // will not log as foo is defined 
    console.log("foo is undefined") 
} 

altro esempio senza definire foo

if(!foo) { 
    // will throw exception "Uncaught ReferenceError: foo is not defined " 
    console.log("foo is defined but false"); 
} 

if(angular.isUndefined(foo)){ 
    // will log 
    console.log("foo is undefined") 
} 

così efficace angular.isUndefined (foo) non fa altro che valutare

if(typeof foo == "undefined") 

avvolto per salvare 1 personaggio sì !

mentre gli assegni -operator se una variabile definita restituisce false così

if(!foo) 

è lo stesso come

if(foo != true) 

UPDATE:

Come indicato nei commenti, quando scrivo "restituisce false" c'è falsenullundefinedNaN"" (stringa vuota) e 0 incluso

+0

Corretto. E ci sono altre cose che sono costrette a false, come null. –

Problemi correlati