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'è false
null
undefined
NaN
""
(stringa vuota) e 0
incluso
fonte
2014-09-02 15:07:09
Corretto. E ci sono altre cose che sono costrette a false, come null. –