Hướng dẫn how do you check if javascript object is empty? - làm cách nào để kiểm tra xem đối tượng javascript có trống không?

Đây là một công thức mã để kiểm tra xem một đối tượng có trống hay không. Đối với các trình duyệt mới hơn, bạn có thể sử dụng Vanilla JS đơn giản và sử dụng "object.keys" mới nhưng đối với hỗ trợ trình duyệt cũ hơn, bạn có thể cài đặt thư viện Lodash và sử dụng phương thức "isempty" của chúng 🤖

# Vani javascript là gì

Vanilla JavaScript không phải là một khung hoặc thư viện mới. Nó chỉ là JavaScript thông thường, đơn giản mà không cần sử dụng thư viện như Lodash hoặc JQuery.

# A. Kiểm tra đối tượng trống trong các trình duyệt mới hơn

Chúng ta có thể sử dụng phương thức Object.keys tích hợp để kiểm tra một đối tượng trống.

# Tại sao chúng ta cần kiểm tra thêm constructor?

Bạn có thể tự hỏi tại sao chúng ta cần kiểm tra constructor. Chà, đó là để trang trải cho các trường hợp trình bao bọc. Trong JavaScript, chúng tôi có 9 hàm tạo tích hợp.

Vì vậy, chúng ta có thể tạo một đối tượng trống với new Object(). Lưu ý bên: Bạn không bao giờ nên tạo một đối tượng bằng cách sử dụng hàm tạo. Nó được coi là thực hành xấu, xem Hướng dẫn và hướng dẫn phong cách Airbnb.

Vì vậy, chỉ sử dụng Object.keys, nó sẽ trả về true khi đối tượng trống ✅. Nhưng điều gì xảy ra khi chúng ta tạo một thể hiện đối tượng mới bằng cách sử dụng các hàm tạo khác này.

Ah ya ya, chúng ta có một dương tính giả 😱

# Giải quyết dương tính giả bằng kiểm tra constructor

Hãy sửa điều này bằng cách thêm kiểm tra hàm tạo.

Xinh đẹp! Chúng tôi đã bao gồm trường hợp cạnh của chúng tôi 👍

# Kiểm tra kiểm tra trống trên các giá trị khác

Được rồi, hãy kiểm tra phương thức của chúng tôi trên một số giá trị và xem những gì chúng tôi nhận được

Có vẻ tốt cho đến nay, nó trả về false cho các đối tượng không.

Nhưng hãy coi chừng! Các giá trị này sẽ ném một lỗi.

# Cải thiện kiểm tra trống cho null và undefined

Nếu bạn không muốn nó ném constructor0, bạn có thể thêm một kiểm tra thêm:

Hoàn hảo, không có lỗi nào được ném 😁

# B. Kiểm tra đối tượng trống trong các trình duyệt cũ hơn

Nếu bạn cần hỗ trợ các trình duyệt cũ hơn thì sao? Heck, tôi đang đùa ai! Tất cả chúng ta đều biết khi tôi nói các trình duyệt cũ hơn, tôi đang đề cập đến Internet Explorer 😂 Vâng, chúng tôi có 2 tùy chọn. Chúng ta có thể gắn bó với vani hoặc sử dụng thư viện.

# Kiểm tra đối tượng trống với JavaScript

Cách vani đơn giản không súc tích. Nhưng nó làm công việc 👍

Nó trả về true cho các đối tượng.

Tuyệt vời, nó không bị lừa bởi các đối tượng nhà xây dựng của chúng tôi

Và chúng tôi được bảo hiểm cho nullundefined. Nó sẽ trả lại false và không ném constructor0.

# Kiểm tra đối tượng trống với các thư viện bên ngoài

Có hàng tấn thư viện bên ngoài bạn có thể sử dụng để kiểm tra các đối tượng trống. Và hầu hết trong số họ có sự hỗ trợ lớn cho các trình duyệt cũ 👍

Lodash

Gạch dưới

jQuery

# Vanilla vs thư viện

Câu trả lơi con phụ thuộc vao nhiêu thư! Tôi là một fan hâm mộ lớn của việc đi vani bất cứ khi nào có thể vì tôi không thích chi phí của một thư viện bên ngoài. Ngoài ra, cho các ứng dụng nhỏ hơn, tôi quá lười biếng để thiết lập thư viện bên ngoài. Nhưng nếu ứng dụng của bạn đã cài đặt thư viện bên ngoài, thì hãy tiếp tục và sử dụng nó. Bạn sẽ biết ứng dụng của bạn tốt hơn bất kỳ ai khác. Vì vậy, chọn những gì phù hợp nhất cho tình huống của bạn 👍

# Ra quyết định có ý thức

  • @lexlohr: Giống như hầu hết mọi thứ đang phát triển, đó là một sự thỏa hiệp. Một nhà phát triển tốt nhận thức được các tùy chọn có sẵn. Một nhà phát triển tuyệt vời cũng nhận thức được ý nghĩa của họ.

Tôi yêu suy nghĩ này rất nhiều! Thông thường, chúng ta phải thực hiện một số thỏa hiệp. Và không có gì sai với điều đó. Đặc biệt, khi bạn làm việc trong một nhóm, đôi khi bất đồng phát sinh. Nhưng cuối cùng, chúng ta phải đưa ra quyết định. Điều này không có nghĩa là chúng ta mù quáng từ các lựa chọn khác. Hoàn toàn ngược lại, chúng tôi làm hết sức mình để tìm kiếm các giải pháp khả thi khác và hiểu từng hàm ý. Đó là cách chúng ta có thể đưa ra quyết định sáng suốt. Có lẽ thỏa hiệp không phải là từ đúng, tôi nghĩ nó là "ra quyết định có ý thức"

Yup, tôi cũng có thể đồng xu các thuật ngữ, giống như sự tách rời có ý thức của Gwyneth Paltrow. Có lẽ tôi nên bắt đầu một phiên bản công nghệ của goop ... nhưng trừ đi con lăn ngọc và các sản phẩm "thú vị" khác

  • @lexLohr
  • @amanboss_9
  • @Kevinsar: Lodash có xu hướng ném các ngoại lệ bảo mật trong các công cụ phân tích như Sonarquabe và Whitesource, tôi có xu hướng chỉ tạo chức năng sử dụng của riêng mình và sử dụng vani.

    • @Sush_Keny: (vì) ô nhiễm nguyên mẫu
  • @Functional_js: isnotobj Gist

# Tài nguyên

  • Mdn: object.keys ()
  • W3Schools: Trình xây dựng JavaScript tích hợp
  • Stack Overflow: Đối tượng có trống không?
  • Stack Overflow: Làm cách nào để kiểm tra đối tượng JavaScript trống?
  • Thủ thuật CSS: Hiểu các hàm tạo JavaScript
  • Các đối tượng trình bao bọc nguyên thủy của JavaScript
  • Đối tượng bao bọc
  • JavaScript từ các đối tượng bao bọc nguyên thủy
  • ESLINT: Không cho phép các phiên bản trình bao bọc nguyên thủy
  • Airbnb: Không có đối tượng mới
  • Lodash: Isempty
  • Undercore: Isempty
  • JQuery: IsemptyObject

Làm thế nào bạn có thể biết nếu một đối tượng trống hoặc không xác định?

Trả lời: Sử dụng phương thức đối tượng.Keys () Bạn có thể chỉ cần sử dụng đối tượng.Phương thức khóa () cùng với toán tử loại để kiểm tra đối tượng JavaScript trống (không chứa các thuộc tính có thể suy định).Ngoài ra, vì null == không xác định là đúng, obj! =Use the Object. keys() Method You can simply use the Object. keys() method along with the typeof operator to test for an empty JavaScript object (contains no enumerable properties). Also, since null == undefined is true , obj !=

Đối tượng trống có đúng trong JavaScript không?

Đối tượng trống không được xác định, giống như var clan_obj = {} này.Một không xác định sẽ là một sai lầm., like this var empty_obj = {} . An undefined will be a false one.

Đối tượng trống có phải là JavaScript ES6 không?

Sử dụng đối tượng.chức năng mục ().Nó trả về một mảng chứa các thuộc tính có thể suy giảm của đối tượng.Nếu nó trả về một mảng trống, điều đó có nghĩa là đối tượng không có bất kỳ thuộc tính nào có thể suy giảm, điều đó có nghĩa là nó trống.If it returns an empty array, it means the object does not have any enumerable property, which in turn means it is empty.