Unterschied zwischen wenn (var.Länge >0){} und if (var){}
In javascript gibt es einen Unterschied zwischen der Verwendung
if (foo.length > 0) {
//run code involving foo
}
und
if (foo) {
//run code involving foo
}
Wenn ja, könnte jemand bitte erklären Sie den Unterschied-und ein Beispiel, wo Sie nicht das gleiche?
InformationsquelleAutor mazlix | 2011-06-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel, wo Sie sind nicht das gleiche:
InformationsquelleAutor Mark Eirich
Die beiden sind völlig Verschieden. Ich gehe davon aus, dass durch die Verwendung von
.length
dassvar
ist ein jquery-Objekt, in dem Fallif(var)
wird immer wahr sein. jQuery wird immer ein Objekt zurückgeben, aber es kann auch leer sein.if(var.length>0)
überprüft, dass das jquery-Objekt enthält tatsächlich ein element.InformationsquelleAutor James Montagne
Den früheren tests, wenn var.Länge gibt mehr als 0. Letztere prüft, ob der Wert von var ist wahr.
Können Sie nicht unbedingt verwenden, entweder eine für alle Variablen. Für einen booleschen Wert, wenn(var) macht mehr Sinn. Für einen string oder ein array ist, wenn(var.Länge) mehr Sinn macht.
InformationsquelleAutor Flimzy
sind Sie natürlich unterschiedlich, die Frage ist eigentlich nur, warum sind Sie anders.
Ihre erste Beispiel ausdrücklich vorgesehen ist, kontrollieren, dass die length-Eigenschaft eines Objekts größer als 0 ist. wenn das wahr ist, es wertet den Inhalt der if-Anweisung.
zweiten Beispiel kann Ihnen nur sagen, wenn die variable 'truthy" oder "falsy" (oder wie der große stephen colbert prägte, 'truthiness'). überprüfen Sie heraus die wikipedia-Artikel über javascript-Boolean zum detail.
InformationsquelleAutor nathan gonzalez