Có một số phương pháp kiểm tra xem đối tượng có thuộc tính hay không trong JavaScript. Hãy nhanh chóng khám phá chúng và tìm ra cái nhanh nhất
Hầu hết các nhà phát triển sử dụng phương thức typeof để kiểm tra xem loại thuộc tính có phải là không xác định hay không. Nếu đối tượng có thuộc tính với giá trị không xác định, typeof không được khuyến nghị
hãy để myObj = { chào mừng. "Chào mừng" }; . nhật ký [không xác định]; . nhật ký [myObj ["chào mừng"]];
hãy để myObj = { chào mừng. "Chào mừng" }; . hoan nghênh]] { // Thuộc tính KHÔNG tồn tại bảng điều khiển. nhật ký [không xác định]; . nhật ký [myObj. hoan nghênh];
Đối tượng Javascript cung cấp phương thức gốc hasOwnProperty. Phương thức trả về một boolean cho biết đối tượng có thuộc tính được chỉ định làm tham số đầu tiên hay không
Phương thức hasOwnProperty không kiểm tra chuỗi nguyên mẫu của đối tượng
hãy để myObj = { chào mừng. "Chào mừng đến với W3Docs. " }; cho prop = myObj. hasOwnProperty["hoan nghênh"]; . nhật ký [chống đỡ]; . nhật ký [chống đỡ]; . hasOwnProperty["Javascript"]; . nhật ký [["chào mừng"]. hasOwnProperty[0]]; . nhật ký [["chào mừng"]. hasOwnProperty["chào mừng"]];
Toán tử in trả về true nếu nó tìm thấy thuộc tính đã chỉ định trong đối tượng
Toán tử in có thể được sử dụng cả trong đối tượng và mảng
hãy để myObj = { chào mừng. "Chào mừng đến với W3Docs" }; . nhật ký [chống đỡ]; . nhật ký [chống đỡ]; . nhật ký [[0 trong ["chào mừng"]]]; . log[["chào mừng" trong ["chào mừng"]]];
Để hiểu phương pháp nào nhanh hơn, bạn nên làm việc với các đối tượng lớn. Các thử nghiệm cho thấy typeof nhanh hơn nhiều so với hasOwnProperty và trong các phương thức
Toán tử typeof giúp lấy kiểu dữ liệu của toán hạng của nó. Toán hạng có thể là một cấu trúc dữ liệu hoặc chữ [một đối tượng, một hàm hoặc một biến]. Hàm typeof trả về một chuỗi có tên của loại biến làm tham số đầu tiên [đối tượng, boolean, không xác định, v.v. ]
Phương thức hasOwnProperty trả về một giá trị boolean, cho biết liệu đối tượng có chứa thuộc tính đã chỉ định hay không
Phương thức này xác định xem đối tượng có thuộc tính được chỉ định là thuộc tính trực tiếp của đối tượng đó hay không. Không giống như toán tử in, hasOwnProperty không kiểm tra thuộc tính trong chuỗi nguyên mẫu của đối tượng. Nếu một đối tượng là một Mảng, phương thức này có thể kiểm tra xem một chỉ mục có tồn tại hay không. Nếu thuộc tính được chỉ định tồn tại trong đối tượng hoặc chuỗi nguyên mẫu của nó, toán tử in trả về true
Chúng ta thường xuyên gặp phải vấn đề đơn giản nhất có thể giải quyết rất dễ dàng. Chúng tôi biết giải pháp cho vấn đề sẽ rất dễ dàng, nhưng thật khó để đưa ra giải pháp. Nó trở nên choáng ngợp với tất cả các khái niệm mới và nhiều thứ khác nhau có sẵn trực tuyến. Đây là một trong những vấn đề như vậy đối với tôi khi tôi mới bắt đầu với JavaScript. Vì vậy hôm nay mình xin liệt kê các cách kiểm tra xem thuộc tính có tồn tại trong một đối tượng hay không
1. Sử dụng phương thức Đối tượng hasOwnProperty[]
Giải pháp phổ biến nhất là sử dụng
console.log[favAuthor.hasOwnProperty['favVillain']] // false
7, một trong những phương thức đối tượng phổ biến. Phương thức này trả về một giá trị boolean cho biết đối tượng có thuộc tính được chỉ định hay khôngvar favAuthor = {
name: 'Dan Brown',
favBook: 'Lost Symbol',
favCharacter: 'Robert Langdon'
}
if[favAuthor.hasOwnProperty['favCharacter']] // true
{console.log['The property exists']}
else {
console.log['The property does not exist']
}
Nếu thuộc tính không tồn tại, nó sẽ trả về false
console.log[favAuthor.hasOwnProperty['favVillain']] // false
2. trong nhà điều hành
Toán tử
console.log[favAuthor.hasOwnProperty['favVillain']] // false
0 trả về console.log[favAuthor.hasOwnProperty['favVillain']] // false
1 nếu thuộc tính được chỉ định nằm trong đối tượng được chỉ địnhvar favAuthor = {
name: 'Dan Brown',
favBook: 'Lost Symbol',
favCharacter: 'Robert Langdon'
}
if['name' in favAuthor] // true
{console.log['The property exists']}
else {
console.log['The property does not exist']
}
Nếu thuộc tính được chỉ định không tồn tại, biểu thức sẽ trả về false
console.log['favVillain' in favAuthor] // false
3. Sử dụng typeof và so sánh nó với undefined
Nếu thuộc tính không tồn tại, loại thuộc tính phải là
console.log[favAuthor.hasOwnProperty['favVillain']] // false
2 và do đó chúng ta có thể sử dụng toán tử console.log[favAuthor.hasOwnProperty['favVillain']] // false
3 và so sánh nó với console.log[favAuthor.hasOwnProperty['favVillain']] // false
2var favAuthor = {
name: 'Dan Brown',
favBook: 'Lost Symbol',
favCharacter: 'Robert Langdon'
}
if[typeof favAuthor.name !== 'undefined'] // true
{console.log['The property exists']}
else {
console.log['The property does not exist']
}
Nếu thuộc tính được chỉ định không tồn tại trong đối tượng được đề cập, nó sẽ trả về false
console.log[favAuthor.hasOwnProperty['favVillain']] // false
04] Sử dụng. toán tử [toán tử hai tiếng nổ]
Đây là phương pháp ít được biết đến nhất để kiểm tra thuộc tính trong đối tượng. Trong Javascript, mọi giá trị đều có giá trị boolean, true hoặc false được liên kết. Ví dụ: giá trị
console.log[favAuthor.hasOwnProperty['favVillain']] // false
5 có giá trị boolean được liên kết là console.log[favAuthor.hasOwnProperty['favVillain']] // false
6. Giá trị chuỗi, chẳng hạn như console.log[favAuthor.hasOwnProperty['favVillain']] // false
7 có giá trị boolean được liên kết là console.log[favAuthor.hasOwnProperty['favVillain']] // false
1Bạn có thể tìm thấy danh sách các giá trị trung thực tại đây và các giá trị giả tại đây
Null là một giá trị giả
console.log[favAuthor.hasOwnProperty['favVillain']] // false
5Vì vậy, chúng tôi có thể tận dụng điều đó bằng tên của thuộc tính mà chúng tôi muốn kiểm tra bằng cách sử dụng. nhà điều hành. Nếu khóa của giá trị thuộc tính không phải là null, nó sẽ trả về true
console.log[favAuthor.hasOwnProperty['favVillain']] // false
6Nếu thuộc tính bằng null, có nghĩa là thuộc tính không tồn tại, nó sẽ tương đương với false vì null là sai