Loại JavaScript null là gì?

Do một lỗi lịch sử, typeof null trong JavaScript trả về "object" — vậy làm thế nào để bạn kiểm tra null?

Ảnh của Ben Hershey trên Bapt null là gì?

“Giá trị null thể hiện sự vắng mặt có chủ ý của bất kỳ giá trị đối tượng nào. Nó là một trong những giá trị nguyên thủy của JavaScript. ” — Tài liệu MDN

T kiểu nguyên thủy JavaScript null thể hiện sự vắng mặt có chủ ý của một giá trị — nó thường được đặt có mục đích để chỉ ra rằng một biến đã được khai báo nhưng chưa được gán bất kỳ giá trị nào.

Điều này trái ngược với null từ giá trị nguyên thủy tương tự undefined , đây là sự vắng mặt không chủ ý của bất kỳ giá trị đối tượng nào

Đó là bởi vì một biến đã được khai báo nhưng không được gán bất kỳ giá trị nào là undefined, không phải null

Thật không may, typeof null1 trả về "object" khi được gọi trên giá trị null do một lỗi lịch sử trong JavaScript sẽ không bao giờ được sửa

Điều đó có nghĩa là việc kiểm tra null không thể được thực hiện bằng cách sử dụng typeof null1

Ảnh của Eugene Triguba trên Baptnull là giả

null là một giá trị giả (i. e. nó đánh giá là typeof null7 nếu bị ép buộc thành boolean)” — Josh Clanton tại A Drip of JavaScript

T cách đơn giản nhất để kiểm tra null là biết rằng null ước tính thành typeof null7 trong điều kiện hoặc nếu bị ép buộc thành giá trị "object"1.

Tất nhiên, điều đó không phân biệt null với các giá trị giả khác

Tiếp theo, tôi khám phá bằng cách sử dụng toán tử đẳng thức "object"3 hoặc "object"4 để kiểm tra null

Ảnh của Nicholas Ruggeri trên UnsplashFalsy bình đẳng bằng cách sử dụng "object"3

“Mặc dù thực tế là null là [falsy], nhưng nó không được coi là tương đương với bất kỳ giá trị giả nào khác trong JavaScript. Trên thực tế, các giá trị duy nhất mà null tương đương một cách lỏng lẻo là undefined và chính nó. ” —Josh Clanton tại A Drip of JavaScript

O một cách để kiểm tra null trong JavaScript là kiểm tra xem một giá trị có bằng với null hay không bằng cách sử dụng toán tử đẳng thức kép null1.

Như được hiển thị ở trên, null chỉ tương đối lỏng lẻo với chính nó và undefined, không phải với các giá trị giả khác được hiển thị

Điều này có thể hữu ích để kiểm tra sự vắng mặt của giá trị - cả nullundefined đều biểu thị sự vắng mặt của giá trị, do đó chúng gần như bằng nhau (chúng có cùng giá trị mặc dù chúng là các loại khác nhau)

Vì vậy, khi lập trình để kiểm tra xem một biến có bất kỳ giá trị nào trước khi thử xử lý nó hay không, bạn có thể sử dụng null6 để kiểm tra null hoặc undefined

Ảnh của David Becker trên UnsplashStrict bình đẳng bằng cách sử dụng "object"4

To đảm bảo rằng chúng tôi có chính xác giá trị null, loại trừ bất kỳ giá trị undefined nào, sử dụng toán tử null2 đẳng thức ba sẽ thực hiện thủ thuật.

Nói chung, nên nắm bắt cả hai giá trị nullundefined, vì cả hai đều đại diện cho việc không có giá trị

Điều đó có nghĩa là việc kiểm tra null là một trong số ít lần trong JavaScript khuyến nghị sử dụng "object"3, trong khi nếu không thì thường khuyến nghị sử dụng null2

Ảnh của Dan Meyers trên UnsplashComparing == vs === khi kiểm tra null

S một số lập trình viên JavaScript thích mọi thứ phải rõ ràng và không có gì sai với điều đó.

Thật vậy, kẻ nói dối mã JSLint rõ ràng không cho phép null8 để ngăn chặn các lỗi ngẫu nhiên do ép buộc kiểu

Một kẻ nói dối mã phổ biến khác, ESLint, có hành vi tương tự nhưng dễ cấu hình hơn xung quanh việc sử dụng "object"3 so với. "object"4

Điều đó có nghĩa là nếu bạn (hoặc kẻ nói dối của bạn) có thói quen luôn sử dụng toán tử đẳng thức nghiêm ngặt "object"4, thì bạn có thể kiểm tra xem một giá trị có hoàn toàn bằng null HOẶC (null2) hoàn toàn bằng không xác định thay vì sử dụng "object"3

Nó dài dòng hơn toán tử "object"3, nhưng tất cả những ai đọc mã của bạn sẽ biết rõ ràng rằng cả nullundefined đều đang được kiểm tra

Ảnh của Cassie Boca trên BaptMột ví dụ thực tế về thời điểm kiểm tra null

“Một cách lỗi này [‘null is not an object’] có thể xảy ra trong một ví dụ thực tế là nếu bạn thử sử dụng một phần tử DOM trong JavaScript của mình trước khi phần tử được tải. Đó là bởi vì API DOM trả về null cho các tham chiếu đối tượng trống. ” — Rollbar trên 10 lỗi JavaScript hàng đầu

T TypeError (“null không phải là đối tượng”) của anh ấy có thể xảy ra nếu các phần tử DOM chưa được tạo trước khi tải tập lệnh, chẳng hạn như nếu tập lệnh cao hơn HTML .

Giải pháp sẽ là sử dụng trình xử lý sự kiện sẽ thông báo cho chúng tôi khi trang sẵn sàng và sau đó chạy tập lệnh

Tuy nhiên, có thể nên thận trọng kiểm tra xem phần tử DOM có phải là null hay không trước khi thử truy cập nó

Ảnh của Denys Nevozhai trên Bapt

“Rất may vì null không thực sự là một đối tượng, nó là 'đối tượng' duy nhất có giá trị giả, các đối tượng trống là trung thực. ” — Casey Morris trong Daily JS

A không có phương pháp kiểm tra null nào khác dựa trên thực tế là null là giả, nhưng các đối tượng trống là trung thực, vì vậy chỉ có duy nhất null là đối tượng giả.

Điều này có thể được kiểm tra một cách thuận tiện bằng cách sử dụng toán tử logic NOT null4

Sử dụng typeof null1 có thể là một thủ thuật hữu ích, bởi vì nếu một biến không được khai báo, thì việc cố gắng tham chiếu nó sẽ tạo ra một kết quả null6

Tuy nhiên, giá trị không được khai báo của typeof null1 là undefined, vì vậy sử dụng typeof null1 có thể là một cách hay để kiểm tra các biến null, undefined và không được khai báo

Ảnh của Dylan Freedom trên Bapt Sử dụng null2

T hàm ES6 null3 khác với các toán tử đẳng thức null2 nghiêm ngặt và null1 lỏng lẻo trong cách nó kiểm tra null6 và số 0 âm null7.

Đối với null, hành vi của null2 giống như "object"4

Điều đó có nghĩa là bạn sẽ cần kiểm tra rõ ràng cả nullundefined nếu bạn đang sử dụng null2, đây là phương thức trợ giúp kiểm tra các thay đổi về trạng thái ẩn trong React

Ảnh của Patrick Hendry trên BaptKết luận

C tìm kiếm null là một nhiệm vụ phổ biến mà mọi nhà phát triển JavaScript phải thực hiện vào lúc này hay lúc khác.

Từ khóa typeof null1 trả về "object" cho null, vì vậy điều đó có nghĩa là cần thêm một chút nỗ lực

So sánh có thể được thực hiện. undefined6 để kiểm tra nghiêm ngặt về null hoặc undefined7 để kiểm tra lỏng lẻo về null hoặc không xác định

Giá trị null là giả, nhưng các đối tượng trống là trung thực, vì vậy undefined9 là một cách dễ dàng để kiểm tra xem giá trị có phải là null không

Cuối cùng, để kiểm tra xem một giá trị đã được khai báo và gán một giá trị không phải là null hay undefined hay chưa, hãy sử dụng typeof null1

Loại đối tượng nào là null?

Trong lập trình máy tính hướng đối tượng, đối tượng null là đối tượng không có giá trị được tham chiếu hoặc có hành vi ("null") trung lập được xác định . Mẫu thiết kế đối tượng null mô tả việc sử dụng các đối tượng đó và hành vi của chúng (hoặc thiếu chúng). Đây là định nghĩa của giao diện Node.

Null có phải là JavaScript kiểu dữ liệu nguyên thủy không?

Các loại Dữ liệu Nguyên thủy trong JavaScript bao gồm Số, Chuỗi, Boolean, Không xác định, Không và Ký hiệu .

Làm cách nào để xác định null trong JavaScript?

'Không' trong JavaScript . Nếu bạn muốn loại bỏ một biến khỏi giá trị được gán của nó, bạn chỉ cần gán 'null' cho biến đó. Bên cạnh đó, giống như bất kỳ đối tượng nào khác, nó không bao giờ được gán ngầm cho một biến bởi JavaScript

Là null không xác định hoặc JavaScript trống?

Kiểm tra biến null bằng toán tử đẳng thức nghiêm ngặt (===) . Vì vậy, chúng ta có thể kiểm tra xem nếu biến chứa giá trị null hoặc giá trị không xác định, điều đó có nghĩa là chúng ta có biến null .