Chỉ có câu hỏi nhanh. Tôi tạo ra điểm chuẩn (liên kết bên dưới), và đối với tôi ít nhất (chạy chrome 18.0.1025), đọc các giá trị từ phía trước của mảng bằng cách sử dụng mảng.shift() mỗi lần có vẻ nhanh hơn đáng kể so với đọc các giá trị bằng cách sử dụng while/for lặp lại và truy cập chúng theo chỉ mục.Javascript: Tại sao điểm chuẩn này hiển thị mảng.shift() nhanh hơn mảng [i] khi đọc các giá trị từ một mảng?
Tôi chắc chắn điều này không thể đúng, vì shift() có nhiều việc phải làm hơn, nhưng đồng thời tôi không thể thấy những gì tôi có thể làm sai khi tính đến sự khác biệt cực đoan này?
http://jsperf.com/some-array-reading-comparisons
Cảm ơn bạn đã đọc, James
Để công bằng, bạn cũng cần sao chép mảng cho những người sử dụng chỉ mục. – kennytm
Đúng. Bộ kiểm tra được cập nhật, 'shift' vẫn xếp hạng cuối cùng. – lanzz
Cảm ơn, đó là nghi ngờ ban đầu của tôi. Tôi đã được ấn tượng rằng mã thiết lập được chạy trước mỗi lần lặp, thay vì chỉ trước mỗi lần kiểm tra :) – jsdw