Hướng dẫn how do you check if a key is present in a dictionary in javascript? - làm cách nào để kiểm tra xem khóa có trong từ điển trong javascript không?
Câu trả lời nhanh
Truy cập trực tiếp một thuộc tính bị thiếu bằng cách sử dụng kiểu mảng hoặc kiểu đối tượng sẽ trả về một hằng số không xác định. Chậm và đáng tin cậy trong toán tử và phương pháp HasownPropertyNhư mọi người đã đề cập ở đây, bạn có thể có một đối tượng với một tài sản được liên kết với hằng số "không xác định".
Trong trường hợp đó, bạn sẽ phải sử dụng HasownProperty hoặc trong nhà điều hành để biết chìa khóa có thực sự ở đó không. Nhưng, nhưng với giá nào? Vì vậy, tôi nói với bạn ... Trong toán tử và HasownProperty là "phương pháp" sử dụng cơ chế mô tả thuộc tính trong JavaScript (tương tự như phản xạ Java trong ngôn ngữ Java). http://www.ecma-international.org/ecma-262/5.1/#sec-8.10
Mặt khác, gọi một phương thức đối tượng hoặc khóa sẽ sử dụng cơ chế JavaScript [[get]]. Đó là một cách xa hơn nhanh hơn! Điểm chuẩnhttps://jsben.ch/HaHQt .Sử dụng trong toán tử
Kết quả là
Sử dụng Hasownproperty
Kết quả là Sử dụng Hasownproperty 16,021,758 ±0.45% ops/sec 91% slower
Kết quả là
Sử dụng Hasownproperty
Kết quả là
Sử dụng Hasownproperty
Truy cập các yếu tố trực tiếp (phong cách dấu ngoặc)confirmed lack of value. On the other hand, 2 is an unknown value (not defined). If there is a property that will be used later with a proper value consider use 3 reference instead of 2 because in the initial moment the property is confirmed to lack value.Compare:
Truy cập các yếu tố trực tiếp (kiểu đối tượng)Chỉnh sửa: Lý do gán cho thuộc tính giá trị 2 là gì?Câu hỏi đó đặt câu hỏi cho tôi. Trong JavaScript, có ít nhất hai tài liệu tham khảo cho các đối tượng vắng mặt để tránh các vấn đề như thế này: var result = "Impression" in array; 3 và var result = "Impression" in array; 2. 3 là giá trị nguyên thủy đại diện cho sự vắng mặt có chủ ý của bất kỳ giá trị đối tượng nào, hoặc trong thời gian ngắn, sự thiếu giá trị được xác nhận. Mặt khác, 2 là một giá trị không xác định (không được xác định). Nếu có một thuộc tính sẽ được sử dụng sau này với giá trị thích hợp, hãy xem xét việc sử dụng tham chiếu 3 thay vì 2 vì trong thời điểm ban đầu, tài sản được xác nhận là thiếu giá trị. Đưa ra một đối tượng JavaScript, bạn có thể kiểm tra xem khóa thuộc tính có tồn tại bên trong các thuộc tính của nó bằng toán tử 1 không.Giả sử bạn có đối tượng 4: 0Chúng ta có thể kiểm tra xem thuộc tính 5 có tồn tại bằng cách sử dụng câu lệnh này không, kết quả là 6:Chúng ta có thể sử dụng điều này trong một điều kiện: Một cách khác là sử dụng phương thức 2 của đối tượng: 1Khi kế thừa là một phần quan trọng trong cấu trúc ứng dụng của bạn, sự khác biệt là 1 sẽ dẫn đến 6 ngay cả đối với các thuộc tính được thừa hưởng bởi các đối tượng cha. 2 không có.Nó sẽ chỉ trả về 6 nếu đối tượng có thuộc tính đó trực tiếp - không phải là một trong những tổ tiên của nó.Tôi sử dụng cơ chế dự phòng khi tôi muốn một thuộc tính và dự phòng với giá trị mặc định nếu điều đó không tồn tại: Nếu khóa thuộc tính 2 không tồn tại trên đối tượng, câu lệnh này sẽ dẫn đến chuỗi 3. |