Trong JavaScript, nullundefined đều biểu thị sự vắng mặt của giá trị, nhưng chúng có những ý nghĩa và cách sử dụng khác nhau. undefined được tự động gán cho các biến chưa được khởi tạo, trong khi null là một giá trị rỗng được lập trình viên gán có chủ đích. Hiểu rõ sự khác biệt giữa hai khái niệm này là điều quan trọng để viết mã hiệu quả và tránh lỗi trong quá trình phát triển.

1. undefined trong JavaScript

undefined biểu thị rằng một biến đã được khai báo nhưng chưa được gán giá trị. Điều này cũng xảy ra khi bạn truy cập vào một thuộc tính hoặc biến mà không có giá trị.

Cách sử dụng phổ biến của undefined

Khi khai báo biến nhưng chưa gán giá trị:

undefined

Truy cập thuộc tính không tồn tại trong đối tượng sẽ trả về undefined:

null

Dùng null khi cố ý gán giá trị trống cho một biến để sau này có thể gán giá trị khác:

null

null có kiểu là "object":

==

Tuy nhiên, khi sử dụng toán tử nghiêm ngặt ===, chúng không được coi là giống nhau vì khác loại dữ liệu:

console.log(null === undefined); // false

4. Khi nào nên sử dụng nullundefined?

Sử dụng undefined khi biến chưa được khởi tạo hoặc khi cần kiểm tra xem biến đã được gán giá trị hay chưa. Sử dụng null khi bạn cần khởi tạo biến hoặc đối tượng với một giá trị rỗng có chủ đích, và sau đó sẽ gán giá trị thực cho biến hoặc thuộc tính này.

5. Tình huống thực tế

Ví dụ khi làm việc với API, bạn có thể gặp null để chỉ sự vắng mặt của dữ liệu trong cơ sở dữ liệu, trong khi undefined có thể xuất hiện khi một biến chưa được khởi tạo hoặc thuộc tính không tồn tại.

Kết luận

nullundefined đều thể hiện sự vắng mặt của giá trị, nhưng null là giá trị được gán có chủ ý bởi lập trình viên, còn undefined xuất hiện khi biến chưa được khởi tạo hoặc không có giá trị.