Trong bài viết này, chúng ta sẽ cùng nói về các loại Null và cách nó hoạt động trong JavaScript và lập trình nói chung.
Null trong JavaScript là gì?
Null có nghĩa là không có giá trị. Khi không có giá trị nào được gán cho một biến đối tượng, điều đó có nghĩa là đối tượng đó không tồn tại. Nếu bạn muốn xóa nội dung của một đối tượng khỏi bộ nhớ, bạn sẽ gán đối tượng đó là null.
Null không chỉ dành riêng cho JavaScript mà nó còn xuất hiện trên Java, C#, SQL, Null hoạt động giống như trong JavaScript.
Một đối tượng là sự kết hợp của các giá trị nguyên thủy như chuỗi, số và kiểu boolean. Vì các đối tượng là các loại dữ liệu đặc biệt, nên chúng ta cũng cần một khái niệm đặc biệt về việc gán các giá trị không có giá trị. Đây là nơi null xuất hiện.
Tổng quan về các loại Null trong JavaScript.
- Các loại nguyên thủy và các loại
Một kiểu dữ liệu nguyên thủy là một số và boolean. Trong JavaScript, kiểu dữ liệu chuỗi cũng được coi là kiểu nguyên thủy. Điều này là do “Xin chào thế giới” thực sự là một chuỗi các ký tự: ‘H’, ‘e’, ’l’, ‘l’, ‘o’… v.v. Một ký tự đơn ‘T’ là kiểu nguyên thủy. Chuỗi ở đây giống như một mảng gồm tất cả các ký tự này cùng nhau.
Đây là lý do tại sao trong Java (khác với JavaScript), kiểu dữ liệu Chuỗi thực sự là một đối tượng. Điều tương tự cũng áp dụng cho JavaScript nhưng JavaScript được xây dựng theo cách mà kiểu chuỗi được xử lý như các giá trị nguyên thủy.
Vì vậy, tóm lại, có thể nói đây là những nguyên hàm trong JavaScript: chuỗi, số, boolean.
Vì vậy, các loại nguyên thủy là gì ?
Kiểu nguyên thủy là nơi biến thực sự chứa dữ liệu. Khi mở biến age, chúng ta sẽ tìm thấy giá trị chính xác ở đó.
Nếu mở biến người, ta sẽ chỉ thấy địa chỉ bộ nhớ này chứ không phải dữ liệu thực tế.
person shows 0x000001
Đây là nơi các kiểu nguyên thủy và kiểu tham chiếu khác nhau.
Như đã được đề cập trước đó, một đối tượng là một kiểu dữ liệu tùy chỉnh được tạo từ nhiều kiểu dữ liệu nguyên thủy hoặc thậm chí là các đối tượng khác.
Mảng là tập hợp các kiểu nguyên thủy khác như danh sách tên hoặc danh sách số. Vì vậy, nó cũng là một đối tượng. Khi bạn kiểm tra kiểu của một mảng, bạn sẽ thấy đối tượng:
Vì mỗi đối tượng là một loại tùy chỉnh, một không gian biến không đủ để chứa tất cả các mục và cấu hình trong đó. Các mục dữ liệu sẽ được lưu trữ ở đâu đó trong bộ nhớ máy tính và biến sẽ chỉ lưu địa chỉ đến vị trí bộ nhớ đó.
Biến này sẽ chỉ tham chiếu đến vị trí bộ nhớ đó, do đó nó được gọi là kiểu tham chiếu (Sierra & Berts, 2005). Nhưng làm thế nào tất cả điều này liên quan đến loại null? Bây giờ chúng ta đã biết có hai loại trong JavaScript, chúng ta có thể đặt giá trị ban đầu của các loại nguyên thủy như sau:
Nhưng khi nói đến các đối tượng, chúng ta không thể chỉ nói person = {} vì một đối tượng trống theo nghĩa đen vẫn đang chiếm bộ nhớ ở đâu đó và nó không thực sự trống.
Để xóa hoàn toàn đối tượng khỏi bộ nhớ, chúng ta sẽ phải gán null cho đối tượng đó.
- Tham chiếu 1 biến
Vì giá trị của một kiểu nguyên thủy nằm bên trong biến nên rất dễ sao chép một biến.
Nếu chúng ta cố gắng làm điều này và thực hiện các thay đổi đối với đối tượng thứ hai, bạn sẽ nhận thấy rằng đối tượng ban đầu cũng đang thay đổi.
Đây là lý do tại sao điều quan trọng là phải biết rằng biến đang thực sự giữ tham chiếu đến đối tượng. Khi bạn sao chép biến này, chỉ có tham chiếu được sao chép.
Tại sao typeof null là đối tượng?
Khi bạn kiểm tra loại Null, bạn sẽ thấy nó là một đối tượng. Nhưng thật chất, Null không phải là một đối tượng, nó là một giá trị nguyên thủy. Đây là một lỗi trong JavaScript và không thể sửa được (Crockford, 2017). Mặt khác, Null chỉ được sử dụng cho các đối tượng trong JavaScript, vì vậy sẽ hữu ích nếu bạn điều chỉnh chương trình của mình theo nó.
Hi vọng thông qua bài viết, các bạn lập trình viên hoặc những ai quan tâm đến chủ đề này đã nắm vững kiến thức về Null, cũng như công dụng của nó trong JavarScript.
Bộ môn Công nghệ thông tin
Cao đẳng FPT Mạng cá cược bóng đá
Hà Nội