Geben Sie in Chrome 21 [,]
an die Konsolenausgaben
[undefiniert x 1]
und füttern [undefined]
outputs
[undefiniert]
Was ist der Unterschied zwischen [undefined]
und [undefined x 1]
?
Was ist die Schreibweise [undefined x 1]
?
[,]
ist ein Sparse-Array . Er hat eine Länge von 1
, aber keine Werte ( 0 in [,] === false
). Es kann auch als new Array(1)
geschrieben werden.
[undefined]
ist ein Array der Länge 1
mit dem Wert undefined
am Index 0
.
Beim Zugriff auf die Eigenschaft " 0
" geben beide undefined
zurück - die erste, weil diese Eigenschaft nicht definiert ist, die zweite, weil der Wert "undefiniert" ist. Die Arrays sind jedoch unterschiedlich und ihre Ausgabe in der Konsole .
[,]
erstellt ein Array mit der Länge 1 und ohne Indizes.
[undefined]
erstellt ein Array mit der Länge 1 mit undefined
-Wert am Index 0
.
Chrome undefined × x
ist für Sparse-Arrays ohne sequenzielle Indizes:
Wenn Sie .forEach
für ein Sparse-Array verwenden würden, überspringt es die Indizes, die nicht existieren.
Wenn Sie eine normale .length
basierte Schleife verwenden:
Es gibt ein Problem, wenn Sie erwarten, dass .forEach
sich wie Nicht-Standard-Implementierungen verhält.
Das ist ungerade []
gibt nur wieder []
für mich auf Chrome 21 aus.
Anyway [a, b, c, ...]
ist die Array-Notation von Javascript, so dass Sie grundsätzlich ein Array ohne Werte definieren.
Eine Endung ,
ist jedoch akzeptabel, um die Array-Generierung zu vereinfachen. Was Chrome Ihnen sagt, ist, dass es im Array einen undefinierten Wert gibt. Siehe Code für Beispiele.
Tags und Links javascript