Die meisten der Tutorials, die ich über Arrays in JavaScript gelesen habe (einschließlich w3-Schulen y devguru ) legen nahe, dass man ein Array mit einer bestimmten Länge initialisieren kann, indem man eine ganze Zahl an den Array-Konstruktor übergibt und die var test = new Array(4);
Syntax.
Nachdem ich diese Syntax großzügig in meinen js-Dateien verwendet habe, habe ich eine der Dateien durch jsLint und er ist ausgeflippt:
Fehler: Problem in Zeile 1 Zeichen 22: Erwartet wurde ')' und stattdessen wurde '4' angezeigt.
var test = new Array(4);
Problem in Zeile 1 Zeichen 23: Erwartet wurde ';' und stattdessen wurde ')' angezeigt.
var test = new Array(4);
Problem in Zeile 1 Zeichen 23: Erwartet wurde ein Bezeichner, stattdessen wurde ')' angezeigt.
Nach dem Durchlesen jsLint's Erklärung für sein Verhalten sieht es so aus, als ob jsLint nicht wirklich die new Array()
Syntax, und bevorzugt stattdessen []
bei der Deklaration von Arrays.
Ich habe also ein paar Fragen:
Erstens: Warum? Gehe ich ein Risiko ein, wenn ich die new Array()
stattdessen die Syntax? Gibt es Browser-Inkompatibilitäten, die ich beachten sollte?
Und zweitens, wenn ich auf die eckige Klammer-Syntax wechseln, gibt es eine Möglichkeit, ein Array zu deklarieren und seine Länge alle in einer Zeile, oder muss ich so etwas tun:
var test = [];
test.length = 4;
1 Stimmen
standard js auch beraten gegen mit
new Array()
im Allgemeinen, aber es ist in Ordnung, die Größe anzugeben. Ich denke, es kommt auf die Konsistenz des Codes im gesamten Kontext an.1 Stimmen
Für diejenigen, die starrere Array-Strukturen vorbelegen wollen, gibt es Typisierte Arrays . Beachten Sie, dass Leistungsvorteile können variieren
0 Stimmen
Bitte sehen Sie sich den folgenden Benchmark an, der verschiedene Lösungen bietet: measurethat.net/Benchmarks/Show/9721/0/