Dường như tôi không hiểu ý nghĩa của từ khóa in
trong JavaScript.Lặp lại trên các mảng Javascript bằng từ khóa "trong"
Hãy nhìn vào đoạn mã này mã (http://jsfiddle.net/3LPZq/):
var x = [1,2]
for(i in x){
document.write(x[i]);
}
Khi chạy trong jsfiddle, nó in không chỉ các giá trị chứa trong mảng, mà còn tất cả các thuộc tính và phương pháp đối tượng mảng.
Khi tôi thay đổi nó như thế này (http://jsfiddle.net/4abmt/):
$(document).ready(function(){
var x = [1,2]
for(i in x){
document.write(x[i]);
}});
nó in chỉ có giá trị 1 và 2.
Tại sao điều này xảy ra? Đây có phải là do jQuery hoặc hành vi của từ khóa in
phụ thuộc vào việc liệu tài liệu có được nạp đầy đủ hay không?
Trong ví dụ đầu tiên bạn có Mootools được chọn làm thư viện (có vẻ như mở rộng nguyên mẫu). Nếu bạn không chọn bất kỳ thư viện nào, kết quả là: http://jsfiddle.net/fkling/3LPZq/6/. Nhưng lưu ý rằng thực hành không tốt là sử dụng 'for ... in' để lặp qua mảng. –