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: 12,931,832 ±0.21% ops/sec 92% slower 3 và 12,931,832 ±0.21% ops/sec 92% slower 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 ____23 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ị. Các đối tượng trong JavaScript là các loại dữ liệu không nguyên thủy chứa một bộ sưu tập các cặp giá trị khóa không có thứ tự. Như bạn có thể thấy trong hình trên, khóa là thuộc tính và mỗi giá trị đối tượng phải có khóa. Khi tương tác với các đối tượng, các tình huống có thể phát sinh yêu cầu bạn kiểm tra xem một khóa cụ thể có tồn tại không. Điều quan trọng cần lưu ý là nếu bạn biết một khóa tồn tại tự động có nghĩa là một giá trị tồn tại. Giá trị này có thể là bất cứ điều gì - thậm chí trống rỗng, null hoặc không xác định. Trong bài viết này, chúng tôi sẽ tìm hiểu các phương pháp khác nhau để kiểm tra xem khóa của một đối tượng có tồn tại trong JavaScript hay không. Trong trường hợp bạn đang vội, đây là hai phương pháp tiêu chuẩn chúng ta có thể sử dụng để kiểm tra: 0Bạn có thể sử dụng toán tử JavaScript 1 để kiểm tra xem thuộc tính/khóa được chỉ định có tồn tại trong một đối tượng không. Nó có cú pháp đơn giản và trả về 4 nếu thuộc tính/khóa được chỉ định tồn tại trong đối tượng được chỉ định hoặc chuỗi nguyên mẫu của nó.Cú pháp khi sử dụng toán tử 1 là: 1Giả sử chúng ta có một đối tượng chứa chi tiết của người dùng: 2Chúng ta có thể kiểm tra xem một khóa có tồn tại với toán tử 1 như được thấy dưới đây không: 3Lưu ý: Giá trị trước từ khóa 1 phải thuộc loại 8 hoặc 9.Cách kiểm tra xem một đối tượng có 16,021,758 ±0.45% ops/sec 91% slower 0 trong JavaScript với phương pháp var result = array.hasOwnProperty("Impression") 2 khôngBạn có thể sử dụng phương thức JavaScript 2 để kiểm tra xem một đối tượng được chỉ định có thuộc tính đã cho làm thuộc tính của nó không. TPhương pháp của anh ấy khá giống với toán tử 1. Phải mất một 8 và sẽ trả lại 4 nếu 0 tồn tại trong đối tượng và 7 nếu không.Cú pháp khi sử dụng phương thức 2 là: 4Giả sử chúng ta có một đối tượng chứa chi tiết của người dùng: 2Chúng ta có thể kiểm tra xem một khóa có tồn tại với toán tử 1 như được thấy dưới đây không: 6Lưu ý: Giá trị trước từ khóa 1 phải thuộc loại 8 hoặc 9.Cách kiểm tra xem một đối tượng có 0 trong JavaScript với phương pháp 2 không 7Bạn có thể sử dụng phương thức JavaScript var result = array.hasOwnProperty("Impression") 2 để kiểm tra xem một đối tượng được chỉ định có thuộc tính đã cho làm thuộc tính của nó không. TPhương pháp của anh ấy khá giống với toán tử 1. Phải mất một 8 và sẽ trả lại 4 nếu 0 tồn tại trong đối tượng và 7 nếu không.Cú pháp khi sử dụng phương thức 2 là:Lưu ý: Giá trị bạn chuyển vào phương thức 2 phải thuộc loại 8 hoặc 9. 8Vì bây giờ chúng ta biết rằng các phương pháp này tồn tại, giờ đây chúng ta có thể sử dụng một điều kiện để kiểm tra và thực hiện bất kỳ hoạt động nào chúng ta muốn thực hiện: 9Gói lên 0Trong bài viết này, chúng tôi đã học được cách kiểm tra xem một đối tượng có khóa bằng hai phương pháp tiêu chuẩn không. Sự khác biệt giữa hai phương thức là 3 tìm kiếm một khóa trong một đối tượng trong khi toán tử 1 tìm khóa trong đối tượng và chuỗi nguyên mẫu của nó. 1Có những phương pháp khác bạn có thể sử dụng, nhưng đến một lúc nào đó chúng có thể trở nên quá phức tạp và không dễ hiểu. Họ cũng có thể thất bại khi được thử nghiệm chống lại một số điều kiện nhất định. Ví dụ: chúng ta có thể sử dụng chuỗi tùy chọn, vì vậy nếu một khóa được chỉ định không tồn tại, nó sẽ trả về 2:Vì vậy, chúng tôi có thể tạo ra một điều kiện mà khi nó không bằng 2, điều đó có nghĩa là chính tồn tại: |