2010-02-04 41 views
6

thể trùng lặp:
What’s the difference between “Array()” and “[]” while declaring a JavaScript array?Sự khác biệt giữa Array() và [] trong Javascript là gì và tại sao tôi nên sử dụng cái kia?

Trong JavaScript bạn có thể tạo một mảng mới như:

var arr = new Array(); 

hay như:

var arr2 = []; 

Sự khác biệt là gì và tại sao bạn lại làm điều này với nhau?

+0

Theo như tôi biết, điều đó cũng giống vậy. Sử dụng bất cứ điều gì bạn thích. – zneak

+5

Ngắt của http://stackoverflow.com/questions/931872/whats-the-difference-between-array-and-while-declaring-a-javascript-arr/1273936#1273936 –

+0

wow, điên rồ mà máy dò dupe đã không ' t phát hiện điều này khi tôi hỏi câu hỏi. Các câu hỏi gần như giống nhau ... – cmcculloh

Trả lời

4

new Array(2) tự hào là một mảng có kích thước , có chứa hai undefined s. [2] tạo ra một mảng có kích thước , có chứa số . new Array IMO không phù hợp với tinh thần của JavaScript, mặc dù nó có thể làm cho việc xây dựng mảng trở nên dễ tìm hơn. Điều đó có thể hoặc có thể không có tầm quan trọng nào (tôi sử dụng các literals gần như hoàn toàn bằng JavaScript cho tất cả các loại áp dụng và tôi đã tạo ra/duy trì thành công phần lớn JavaScript [30-50 KLOC]).

chỉnh sửa Tôi đoán những nguyên nhân dày dạn lập trình javascript tránh new Array cú pháp là:

  • nó không cư xử thống nhất trên một số lượng tham số và các loại ((new Array(X)).length == 1 cho bất kỳ Xcàng lâu càngtypeof(X) != "number"
  • chi tiết hơn và điều duy nhất bạn đạt được là bất thường
+0

Điểm bullet đầu tiên là hoàn hảo. Đó chính xác là điều tôi đang tìm kiếm. Cảm ơn! – cmcculloh

0

Tôi tin rằng chúng giống hệt nhau. Tôi không bao giờ sử dụng Array mới();

+0

Đồng ý, hai cách để thực hiện cùng một điều – anthares

+1

nhưng TẠI SAO bạn không sử dụng mảng mới()? Tôi biết hầu hết các nhà phát triển JavaScript "có kinh nghiệm" không, nhưng tại sao không? – cmcculloh

2

Lý do khác (nhỏ) để sử dụng [] tuỳ chọn new Array()Array có thể bị ghi đè (mặc dù tôi chưa bao giờ thấy điều đó xảy ra) và [] được đảm bảo hoạt động.

Array = "something"; 
var a = new Array(); // Fails 
var b = []; // Works 
Các vấn đề liên quan