Tôi cần một mảng đã nhập, cụ thể là Float32Array, của tất cả các số không. Tôi đã nghĩ rằng tôi sẽ phải xóa nó bằng tay, nhưng tôi nhận thấy rằng khi tôi tuyên bố nó, nó đã được zeroed ra. Đây có phải là cái gì đó được xác định trong spec? Tôi có thể dựa vào hành vi này không?Các mảng được nhập Javascript có được khởi tạo thành 0 không?
Trả lời
Theo JavaScript's Typed Array Specification, contents are initialized to 0. Vì vậy, bạn sẽ có thể dựa vào hành vi này.
Lưu ý rằng các mảng đã nhập don't have very good cross browser support yet. Chrome, Safari, Firefox và Opera hỗ trợ nó, nhưng Internet Explorer chỉ giới thiệu hỗ trợ trong IE10.
Tôi cũng nên đề cập rằng mảng đã nhập hiện là extremely slow in Safari so với mảng thông thường. Vì lý do này, có lẽ bạn nên tránh các mảng đã nhập trừ khi bạn không nhắm mục tiêu Safari. Sử dụng các mảng thông thường, tất cả các giá trị mảng được khởi tạo là undefined
.
Theo mảng mặc định chứa null
nếu bạn xây dựng chúng với kích thước. Kể từ null == 0
bạn có khả năng có thể xem xét nó được điền với 0
hoặc bất kỳ giá trị giả nào khác. Tuy nhiên, bạn sẽ gặp vấn đề nếu bạn cố gắng gọi các phương thức trên các số, chẳng hạn như .toString
. Hoặc nếu bạn chạy nó thông qua một hàm mong đợi một dạng số như parseInt
.
Tốt nhất, bạn nên luôn luôn khởi một mảng để bạn biết chính xác những gì nó chứa, mặc dù cá nhân tôi chưa bao giờ nghe nói về mảng đánh máy trong JS ...
* Theo mặc định mảng chứa null nếu bạn xây dựng chúng với kích thước *: nope. Hãy thử trong giao diện điều khiển của bạn: 'var a = []; a.length = 5; console.log (a [3]) 'hoặc' var a = new Array (5); console.log (a [3]) ' – KooiInc
Cả hai đều cho tôi một mảng đầy đủ' null ', trừ khi tôi hiểu lầm? –
Có thể có sự khác biệt về trình duyệt? Trong bảng điều khiển của Chrome 'console.log (a)' hiển thị '[undefined × 5]' – KooiInc
- 1. Thành viên cấu trúc chưa được khởi tạo luôn được đặt thành 0 không?
- 2. Ints luôn được khởi tạo là 0?
- 3. java: mảng nguyên thủy - chúng có được khởi tạo không?
- 4. Tính năng "Khởi tạo thành viên trong lớp" có được tạo thành C++ 11 không?
- 5. Khi khởi tạo mảng char, là khoảng trống còn lại không được lấp đầy hoặc chưa được khởi tạo?
- 6. Mảng Javascript được tạo bằng Object.create - không phải mảng thực?
- 7. "có thể không được khởi tạo"
- 8. Cách tạo mảng StringBuilder được khởi tạo bằng ""?
- 9. Tại sao các thành viên lớp mẫu chưa được kích hoạt lại không được khởi tạo?
- 10. Cách tạo bộ sưu tập/mảng có kích thước N với mỗi ô được khởi tạo bằng 0 trong Groovy?
- 11. Bộ đệm trực tiếp trong Java có được khởi tạo thành giá trị mặc định như mảng không?
- 12. Có phải "class var" được khởi tạo bằng không?
- 13. Các biến thành viên có thể được sử dụng để khởi tạo các thành viên khác trong danh sách khởi tạo không?
- 14. Các biến không được khởi tạo trong Fortran 2003
- 15. C++ - tương đương với các mảng được khởi tạo không đầy đủ trong C?
- 16. Mảng không được đặt Javascript
- 17. Java - Các biến cuối cùng có thể được khởi tạo trong khối khởi tạo tĩnh không?
- 18. php - tạo, động, một mảng được khởi tạo với các phần tử N null
- 19. Các thành viên "enum class" có được khởi tạo ngay lập tức hay muộn hơn khi được sử dụng không?
- 20. Khi nào mảng được khởi tạo trong Java?
- 21. Các mảng Oracle PL/SQL có được lập chỉ mục từ 0 hoặc từ 1 không?
- 22. Tôi có phải khởi tạo phao bằng 0.f không?
- 23. Khởi tạo các mảng động C
- 24. C - khởi tạo mảng các cấu trúc
- 25. Tại sao các biến thành viên được khởi tạo trong các hàm tạo?
- 26. Khởi tạo các mảng trong C++
- 27. Sử dụng Regex để tạo thành một số không có số 0 đứng đầu trong Javascript
- 28. Điều gì có thể được khởi tạo?
- 29. Khởi tạo mảng trong Perl
- 30. khởi tạo mảng C đa chiều có kích thước biến thành số không
Ý của bạn là gì bằng cách 'không tham gia'? – KooiInc
bạn có thể hiển thị mã của bạn? javascript không có mảng đã nhập. Một mảng chứa bất cứ điều gì bạn quyết định đưa vào nó; ví dụ. '[1," hello ", {a: 3}]' là một mảng hợp lệ trong javascript. – jackwanders
Đây là những gì tôi nhận được trong bảng điều khiển dành cho Google Chrome. 'a = float32Array mới (10)' trả về '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]'. Tôi đang sử dụng mảng đã nhập vì tôi đang làm việc trong WebGL. Chúng khác với mảng tiêu chuẩn và vì nó chủ yếu dành cho WebGL, nó có một chút bí truyền. Tôi nên xác định điều đó. – SharkCop