Toán tử typeof trong JavaScript được sử dụng để xác định kiểu dữ liệu của một biến hoặc một giá trị. Khi bạn sử dụng toán tử này, nó trả về một chuỗi mô tả kiểu dữ liệu của đối tượng mà bạn kiểm tra. Dưới đây là một số điểm chính về toán tử typeof:

Cách Sử Dụng

Để sử dụng toán tử typeof, bạn chỉ cần đặt nó trước biến hoặc giá trị mà bạn muốn kiểm tra. Cú pháp đơn giản như sau:

typeof variable

Các Kết Quả Có Thể

Khi bạn sử dụng typeof, nó sẽ trả về một trong các giá trị sau:

  • "undefined": Nếu biến chưa được khởi tạo.
  • "boolean": Nếu biến là kiểu Boolean (true hoặc false).
  • "number": Nếu biến là kiểu Number (bao gồm cả số nguyên và số thực).
  • "string": Nếu biến là kiểu String.
  • "object": Nếu biến là kiểu Object (bao gồm cả mảng và null).
  • "function": Nếu biến là một hàm.
  • "symbol": Nếu biến là kiểu Symbol (được giới thiệu trong ES6).

Ví Dụ

Dưới đây là một số ví dụ minh họa cách sử dụng toán tử typeof:

let x;
console.log(typeof x); // In ra "undefined"

let isTrue = true;
console.log(typeof isTrue); // In ra "boolean"

let num = 42;
console.log(typeof num); // In ra "number"

let text = "Hello, World!";
console.log(typeof text); // In ra "string"

let obj = { key: "value" };
console.log(typeof obj); // In ra "object"

let arr = [1, 2, 3];
console.log(typeof arr); // In ra "object" (mảng cũng là một đối tượng)

let fn = function() {};
console.log(typeof fn); // In ra "function"

let sym = Symbol("description");
console.log(typeof sym); // In ra "symbol"

Lưu Ý Khi Sử Dụng

  • Đối với các giá trị như mảng, typeof sẽ trả về "object" vì mảng là một loại đối tượng trong JavaScript. Để kiểm tra xem một biến có phải là mảng hay không, bạn có thể sử dụng Array.isArray().
let arr = [1, 2, 3];
console.log(Array.isArray(arr)); // In ra true
  • Đối với null, typeof cũng sẽ trả về "object", điều này là một hành vi không mong đợi trong JavaScript.
let value = null;
console.log(typeof value); // In ra "object"

Kết Luận

Toán tử typeof là một công cụ hữu ích để kiểm tra kiểu dữ liệu trong JavaScript, giúp bạn viết mã linh hoạt và dễ bảo trì. Tuy nhiên, cần lưu ý rằng nó có những hạn chế nhất định và không phải lúc nào cũng trả về kết quả như mong đợi, đặc biệt là với mảng và null.