2010-03-25 4 views

Antwort

32

Der Hauptgrund, [] im Gegensatz zu new Array() zu verwenden, sind die Argumente, die Sie übergeben. Wenn Sie new Array(10) verwenden, erstellen Sie ein leeres Array mit 10 Elementen. Wenn Sie jedoch [10] verwenden, erstellen Sie ein Array mit einem Element, dessen Wert 10 ist. Da dies im Allgemeinen die Informationen sind, die die meisten Programmierer an ein Array übergeben möchten (da Arrays in Javascript dynamisch sind), wird dies im Allgemeinen als die beste Vorgehensweise angesehen. Auch new Array(10,20) funktioniert anders als new Array(10). In diesem Fall haben Sie den gleichen Effekt wie [10,20], um ein Array mit 2 Elementen, 10 und 20 zu erstellen. Da dies ... im besten Fall ... seltsam ist, ist es einfach, ein leeres Array zu erstellen, indem new Array() nur ein Wert übergeben wird . [] hat immer den gleichen Effekt, also würde ich auch empfehlen, dabei zu bleiben.

+4

+1 Ich glaube, das ist der Hauptgrund. Wenn ich mich richtig erinnere, war die [] -Syntax in früheren JavaScript-Implementierungen einfach nicht verfügbar. –

+2

Tatsächlich wurden Array- und Objektliterale in JavaScript 1.2 eingeführt. IE 4 und Netscape 4 unterstützten sowohl Array- als auch Objektliterale, so dass beide heutzutage völlig sicher zu verwenden sind, es sei denn, Sie müssen aus früheren Gründen auf frühere Versionen dieser Browser zurückgreifen. –

+0

Ein weiterer guter Grund, [] zu verwenden, ist einfach: 'new Array()' => 11 Zeichen; '[]' => 2 Zeichen. Verwenden Sie einfach die kurze Notation ist beides ziemlich gleichwertig. –

7
  • kürzer
  • Argumente von Array verwirrend sind (zB new Array(10) und new Array("10") sind ziemlich unterschiedlich)
+0

+1 Noch schlimmer: neue Array (10) und neue Array (10, 20) sind völlig unterschiedlich. –

1

Es ist das gleiche. Der einzige Grund, [] über new Array() zu verwenden, ist, dass es kürzer ist.

1

kürzer und sauberer. Sollte {} verwenden, um auch Objekte zu erstellen.

3

Beide können als gut verwendet werden. Diese Diskussion/Verwirrung hat begonnen, seit Javascript Guru Douglas Crockford sagte, dass the new keyword is considered harmful. Seitdem wurde es als "gute Praxis/Technik" betrachtet, das Schlüsselwort new wegzulassen, um unerwartete Ergebnisse/Verhaltensweisen zu vermeiden. Siehe auch Stackoverflow topic.

+1

Auch: jslint markiert 'new Array()' als ein Problem und schlägt vor, es durch '[]' zu ersetzen. – Cheeso

+7

Die oberen Antworten bei dieser Verbindung geben an, dass sie nicht schädlich ist und dass sie in vielen Fällen verwendet werden kann. Außerdem sehe ich keine Gefahr oder keinen Schaden in "new Array()" – Sasha

+2

Es gibt in der Tat keine Gefahren, wenn Sie es konsequent verwenden. Es ist nur eine "Übung". – BalusC

2

Es punktet Sie weniger Symbole im Code Golf.

3

Drei Gründe (die erste auf in anderen Antworten erweitert zwei):

  1. Shorter;
  2. Ermöglicht die Erstellung von Arrays mit einem Element, wie in Chibus Antwort beschrieben;
  3. Funktioniert sogar in dem unwahrscheinlichen Fall, dass der Array Konstruktor überschrieben wurde.

Nicht Gründe:

  1. Vermeidung des new Betreiber. Haben Sie keine Angst vor new, nur weil Douglas Crockford einmal davon gebissen wurde. Es ist sehr nützlich.
+0

Ich wähle jeden, der sagt "Hör nicht blind auf Douglas Crockford". Er hat großartige Ideen, aber er ist nicht Gott und ich stimme insbesondere mit vielen von ihnen nicht überein –

Verwandte Themen