Kai345: Schreibweise einer for-Schleife

Beitrag lesen

[latex]Mae  govannen![/latex]

Hallo,

es gibt ja einige Schreibweisen fuer eine for-Schleife in Javascript. Ich bin nun ueber eine neue Schreibweise gestolpert, mit der generell eine Zeile (Folge)Code eingespart werden kann. Da diese Schreibweise aber nicht ueblich erscheint, wollte ich einmal bei den Experten nachfragen, ob es abgesehen von Performancebetrachtungen andere Dinge gibt, die gegen diese Schreibweise sprechen wuerden?

Standardschreibweise ohne caching

var arr = [1,2,3,4];
for(var i = 0; i < arr.length;i++){
  var item = arr[i];
  // bla bla bla
}


>   
> neue Schreibform  
> ~~~javascript
  

> var arr = [1,2,3,4];  
> for(var i = 0, item; item = arr[i] ;i++){  
>    // bla bla bla  
> }  
> 

Gibt es mit der unteren Schreibweise Nachteile gegenueber der oberen, abgesehen von moeglichen Performanceueberlegungen?

Die untere Schleife reagiert anders auf die Werte im Array. Während die obere Schleife _immer_ komplett durchläuft, wird die Untere nur solange ausgeführt, wie der jeweilige Wert von arr[i] nicht "falsy" (also 0, null, false, "", undefined) ist.

Eine Schleife über [1,2,0,4] würde also nur zwei Mal (Werte 1,2) durchlaufen. Das kann man auch natürlich gezielt ausnutzen, um ein bestimmtes Programmverhalten zu erreichen, bspw um einen sauberen Abbruch zu haben.

Ich benutze bspw. grundsätzlich die untere Form, um über Nodelisten und HTMLCollections, die mit getElementsBy* oder querySelector* zu iterieren (natürlich nur, wenn diese Listen [in der Schleife|generell] NICHT manipuliert werden, kommt auf den Fall an)

Stur lächeln und winken, Männer!
Kai

--
var jQuery = $(hit);
Unsere Identität entnehmen Sie bitte dem beigefügten Auszug aus den Personenstandsbüchern. Gegen die Assimilierung in unser Kollektiv ist nach dem ABGB (§666, Abs. 3/IV) kein Rechtsmittel zulässig. Wir bitten um Ihr Verständnis.
SelfHTML-Forum-Stylesheet