thể trùng lặp:
Is Chrome's JavaScript console lazy about evaluating arrays?hành vi console.log Bizarre trong Công cụ nhà phát triển Chrome
Mở Công cụ nhà phát triển Chrome và gõ vào:
var a = [];console.log(a);a.push(1);console.log(a);
Bạn sẽ mong đợi điều này để xuất ra một cái gì đó như
[]
[1]
Nhưng thay vào đó nó ra
[1]
[1]
Các hành vi là như nhau cho
var a = [];console.log(a);a[0] = 1;console.log(a);
bất cứ ai có thể giải thích hành vi này?
Chạy Chrome trên hành vi Cùng OS X. trên 32bit Windows 7.
EDIT: Hành vi này là như nhau bất kể việc các báo cáo là trên cùng một dòng hay không. Tôi chỉ đơn giản cung cấp cho họ trên một dòng để dễ dàng kiểm tra.
Đưa
var a = [];
console.log(a);
a.push(1);
console.log(a);
trong một file sau đó chạy nó mang lại những hành vi tương tự.
CHỈNH SỬA x 2 Xem: http://jsfiddle.net/9N4A6/ nếu bạn không muốn tạo tệp để kiểm tra.
tôi đoán là các cuộc gọi cho 'console. log (a) 'xếp hàng đối tượng mảng để in, nhưng việc chuyển đổi mảng thành chuỗi chỉ xảy ra sau khi toàn bộ dòng được thực hiện. – Pointy
@CMS: Không thấy điều đó - cảm ơn –
Bạn được chào đón @Jamie :) – CMS