Search…

So Sánh undefined, null và Rỗng

15/09/20202 min read
Phân biệt chưa khai báo - undefined, chưa tồn tại đối tượng - null và rỗng - empty.

Bài viết sử dụng JavaScript để phân biệt các trường hợp:

  • undefined: chưa khai báo, chưa tồn tại tham chiến, biến.
  • null: đối tượng chưa tồn tại.
  • "": rỗng.

Xét ví dụ 1 tham chiếu kiểu string:

let str_a = null;    // null
let str_b = "";      // có dữ liệu là chuỗi 0 ký tự hay rỗng
let str_c = "stdio"; // có dữ liệu là chuỗi 5 ký tự

Truy vấn thông tin sau để phân biệt các trường hợp

Trường hợp str_d - undefined

Giả sử truy vấn thông tin của biến str_d với các khai báo trên, trong trường hợp này str_d chưa được khai báo, biến str_d chưa tồn tại, trường hợp này được gọi là undefined.

Trường hợp str_a - null

Trường hợp biến str_a đã được khai báo, do đó biến str_a tồn tại và khác undefined, nhưng đối tượng mà str_a tham chiếu đến chưa tồn tại do đó str_anull.

Trường hợp str_b và str_c

Trường hợp biến str_bstr_c đều cùng khác undefined và khác null, thực chất trường hợp này như nhau, str_bstr_c đều đã tham chiếu đến 1 đối tượng kiểu string và chỉ khác ở giá trị dữ liệu đang lưu trữ.

  • str_b tham chiếu đến 1 đối tượng kiểu string với chuỗi có 0 ký tự.
  • str_c tham chiếu đến 1 đối tượng kiểu string với chuỗi có 5 ký tự.

Mô phỏng

Bên trái là các biến, bên phải là các đối tượng:

  • str_d: được mô phỏng bằng đường đứt nét nghĩa chưa tồn tại -> undefined.
  • str_a: được mô phỏng bằng đường liền do đã được khai báo nhưng chưa tham chiếu đến đối tượng nào -> null.
  • str_b, str_c: được mô phỏng bằng đường liền do đã được khai báo, đối tượng tham chiếu đến cũng là đường liền nét nên 2 trường hợp này đều khác undefinednull.
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024