Heim  >  Artikel  >  Web-Frontend  >  Die Auswirkung des Weglassens von Elementen auf die Array-Länge in JavaScript

Die Auswirkung des Weglassens von Elementen auf die Array-Länge in JavaScript

高洛峰
高洛峰Original
2016-12-08 16:22:161204Durchsuche

Wenn wir Abschnitt 7.1 der sechsten Ausgabe von „The Definitive Guide to JavaScript“ studieren, um ein Array über ein Array-Literal zu erstellen, können wir einem Element des Arrays keinen Wert zuweisen und es wird undefiniert. Obwohl es undefiniert ist, führt undefiniert auch dazu, dass die Länge um 1 erhöht wird, wenn wir die Längeneigenschaft des Array-Objekts aufrufen. Es gibt vier Situationen, wie unten gezeigt:

var undef0 = [,,];
var undef1 = [1,,];
var undef2 = [,1,];
var undef3 = [,,1];
console.log(undef0.length);
console.log(undef1.length);
console.log(undef2.length);
console.log(undef3.length);

Wir können die Länge jeder der vier console.log-Ausgaben vorhersehen . Ich schätze, beide sind 3. Das tatsächliche Ergebnis ist wie folgt:

Die Auswirkung des Weglassens von Elementen auf die Array-Länge in JavaScript

Warum ist das so? Die Antwort lautet: Die Syntax von Array-Literalen erlaubt optionale nachgestellte Kommas, also [,,], [ In den drei Im Fall von 1,,] und [,1,] geht die JS-Engine davon aus, dass das letzte Komma das Endkomma ist, und geht daher davon aus, dass es im Fall von [,,1] nur zwei Elemente gibt Nach dem letzten Komma wird ein weiteres Element hinzugefügt, sodass das letzte Komma nicht das Ende ist, sodass wir davon ausgehen können, dass die Länge von [,,1,] immer noch 3 beträgt.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn