Hai cách phổ biến nhất để truy cập các thuộc tính trong JavaScript là bằng dấu chấm và dấu ngoặc vuông. Cả hai đều value.x and value[x]
truy cập vào một tài sản trên giá trị nhưng không nhất thiết phải là cùng một tài sản. Sự khác biệt là cách x được diễn giải. Khi sử dụng dấu chấm, phần sau dấu chấm phải là tên biến hợp lệ và nó trực tiếp đặt tên cho thuộc tính. Khi sử dụng dấu ngoặc vuông, biểu thức giữa các dấu ngoặc được ước tính để lấy tên thuộc tính. Trong khi value.x lấy thuộc tính của giá trị có tên là x x, giá trị [x] cố gắng đánh giá biểu thức x và sử dụng kết quả làm tên thuộc tính.
Vì vậy, nếu bạn biết rằng tài sản mà bạn quan tâm có tên là chiều dài, bạn nói value.length
. Nếu bạn muốn trích xuất thuộc tính được đặt tên theo giá trị được giữ trong biến i
, bạn nói value[i]
. Và vì tên thuộc tính có thể là bất kỳ chuỗi nào, nếu bạn muốn truy cập thuộc tính có tên “2”
hoặc “John Doe”
, bạn phải sử dụng dấu ngoặc vuông : value[2] or value["John Doe"]
. Đây là trường hợp mặc dù bạn biết trước tên chính xác của tài sản, bởi vì không phải “2” nor “John Doe”
là tên biến hợp lệ và do đó không thể được truy cập thông qua ký hiệu dấu chấm.
Trong trường hợp Mảng
Các phần tử trong một mảng được lưu trữ trong các thuộc tính. Vì tên của các thuộc tính này là số và chúng ta thường cần lấy tên của chúng từ một biến, nên chúng ta phải sử dụng cú pháp ngoặc để truy cập chúng. Thuộc tính độ dài của một mảng cho chúng ta biết nó chứa bao nhiêu phần tử. Tên thuộc tính này là một tên biến hợp lệ và chúng tôi biết trước tên của nó, vì vậy để tìm độ dài của một mảng, bạn thường viết array.length
vì nó dễ viết hơn array["length"]
.