CodeGym /Khóa học Java /Frontend SELF VI /Các kiểu đặc biệt trong JavaScript

Các kiểu đặc biệt trong JavaScript

Frontend SELF VI
Mức độ , Bài học
Có sẵn

2.1 Biến — là tham chiếu

Trong JavaScript, các biến là tham chiếu tới đối tượng, chứ không phải chính biến đó. Điều này có nghĩa là khi bạn tạo một biến trong JavaScript, bạn chỉ đơn thuần tạo một tham chiếu tới đối tượng trong bộ nhớ.

Tính năng này của ngôn ngữ có những hệ quả quan trọng đối với việc làm việc với biến, đặc biệt khi truyền đối tượng vào hàm hoặc gán chúng cho các biến khác.

Khi bạn tạo một biến và gán nó giá trị, JavaScript sẽ cấp phát đối tượng trong bộ nhớ cho giá trị đó và làm biến trở thành tham chiếu tới đối tượng này. Nếu bạn gán một biến cho biến khác, biến mới sẽ tham chiếu tới cùng đối tượng, giống như biến ban đầu. Điều này có nghĩa là các thay đổi, được thực hiện qua một biến, sẽ ảnh hưởng lên biến khác nếu đối tượng đó có thể thay đổi.

Ví dụ:

JavaScript
    
      let a = [1, 2, 3];
      let b = a;

      b.push(4);
      console.log(a);  // Hiển thị: [1, 2, 3, 4]
    
  

Chúng ta đã thêm số 4 vào biến b, nhưng nó cũng được thêm vào danh sách trong biến a, vì thực sự cả hai biến — chỉ là tham chiếu tới đối tượng danh sách [1, 2, 3]

2.2 Kiểu undefined

Trong JavaScript, có hai kiểu dữ liệu đặc biệt: nullundefined. Những kiểu dữ liệu này thường gây ra thắc mắc cho các developer bởi vì chúng khá giống nhau, nhưng chúng có mục đích khác nhau và được sử dụng trong những tình huống khác nhau. Hãy xem xét chúng kỹ hơn.

Kiểu undefined

Kiểu undefined đại diện cho giá trị của một biến đã được khai báo nhưng chưa được khởi tạo. Giá trị này cũng được trả lại khi truy cập vào thuộc tính không tồn tại của đối tượng hoặc phần tử của mảng không tồn tại.

Ví dụ

1. Biến chưa được khởi tạo:

JavaScript
    
      let x;
      console.log(x); // undefined
    
  

2. Thuộc tính không tồn tại của đối tượng:

JavaScript
    
      let obj = {};
      console.log(obj.property); // undefined
    
  

3. Phần tử không tồn tại trong mảng:

JavaScript
    
      let array = [1, 2, 3];
      console.log(array[5]); // undefined
    
  

4. Đối số không có của hàm:

JavaScript
    
      function myFunction(a, b) {
        console.log(b); // undefined, nếu gọi là myFunction(1)
      }
      myFunction(1);
    
  

Thuộc tính undefined:

  • undefined là một kiểu dữ liệu và giá trị
  • typeof undefined trả về undefined

2.3 Kiểu null

Kiểu null đại diện cho việc không có giá trị một cách cố ý. Giá trị này thường được sử dụng để khởi tạo các biến mà sau này sẽ được gán cho một đối tượng hoặc để xóa giá trị của biến.

Ví dụ

1. Khởi tạo biến:

JavaScript
    
      let obj = null;
      console.log(obj); // null
    
  

2. Xóa giá trị của biến:

JavaScript
    
      let user = { name: "Alice" };
      user = null; // user giờ không chỉ định vào đối tượng
    
  

Thuộc tính null:

  • null là một giá trị đại diện cho việc không có giá trị một cách cố ý
  • typeof null trả về object, điều này được công nhận là lỗi trong ngôn ngữ JavaScript (thực tế null không phải là đối tượng)

2.4 So sánh null và undefined

Mặc dù nullundefined có thể được sử dụng để chỉ ra sự không tồn tại của giá trị, chúng khác nhau về mục đích và ngữ cảnh sử dụng.

Thuộc tính null undefined
Kiểu Kiểu nguyên thủy Kiểu nguyên thủy
Mục đích Không có giá trị một cách cố ý Biến chưa được khởi tạo
Sử dụng Khởi tạo biến, xóa giá trị Thuộc tính không tồn tại, phần tử mảng
Giá trị mặc định Không Có (cho biến chưa được khởi tạo, tham số hàm)

Ví dụ sử dụng

1. Khởi tạo biến với đối tượng hoặc mảng:

JavaScript
    
      let myObject = null;
      let myArray = null;
    
  

2. Kiểm tra giá trị:

JavaScript
    
      let value;

      if (value === undefined) {
        console.log("Biến chưa được khởi tạo.");
      }

      let result = null;

      if (result === null) {
        console.log("Không có giá trị.");
      }
    
  

3. Xóa giá trị:

JavaScript
    
      let person = { name: "Alice" };
      person = null; // Giờ person không chỉ định vào đối tượng
    
  

4. Kiểm tra thuộc tính tồn tại:

JavaScript
    
      let obj = {};

      if (obj.property === undefined) {
        console.log("Thuộc tính không tồn tại.");
      }
    
  

Hiểu sự khác biệt giữa nullundefined trong JavaScript là quan trọng để quản lý đúng các giá trị và tránh các lỗi trong mã.

undefined thường chỉ ra các biến chưa được khởi tạo hoặc các thuộc tính không tồn tại, trong khi null được sử dụng để chỉ ra một cách rõ ràng sự không tồn tại của giá trị.

Việc sử dụng đúng các kiểu dữ liệu đặc biệt này làm cho mã dễ hiểu và dự đoán hơn.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION