Toán tử typeof trong JavaScript

Toán tử typeof trong JavaScript
Toán tử typeof trong JavaScript

Chức năng của Toán tử typeof trong JavaScript

Toán tử typeof trong JavaScript dùng để kiểm tra các kiểu dữ liệu truyền vào thuộc kiểu dữ liệu nào, ví dụ: number, string, object, boolean,...

Cú pháp của Toán tử typeof trong JavaScript

typeof dulieu;

dulieu: Dữ liệu truyền vào có thể thuộc kiểu dữ liệu: number, string, object, boolean,....

Code Toán tử typeof trong JavaScript

document.write(typeof 35 +"<br>"); // Kết quả: number
<script>
var mang = ["Vân","Lực","Quỳnh"];
document.write(typeof 35 +"<br>"); // Kết quả: number
document.write(typeof 35.7 +"<br>"); // Kết quả: number
document.write(typeof "web mới" +"<br>"); // Kết quả: string
document.write(typeof new Date() +"<br>"); // Kết quả: object
document.write(typeof true +"<br>"); // Kết quả: boolean
document.write(typeof mang +"<br>"); // Kết quả: object
document.write(typeof null +"<br>"); // Kết quả: object (ông này bị lỗi, lỗi của javacript)

document.write(typeof(35)+"<br>"); // Kết quả: number
document.write(typeof(35.7)+"<br>"); // Kết quả: number
document.write(typeof("web mới") +"<br>"); // Kết quả: string
document.write(typeof(new Date()) +"<br>"); // Kết quả: object
document.write(typeof(true)+"<br>"); // Kết quả: boolean
document.write(typeof(mang) +"<br>"); // Kết quả: object
document.write(typeof(null) +"<br>"); // Kết quả: object (ông này bị lỗi, lỗi của javacript)
</script>

Kết quả:

number
number
string
object
boolean
object
object
number
number
string
object
boolean
object
object

Chạy Thử

Những trường hợp cần lưu ý khi sử dụng toán tử typeof trong JavaScript

typeof rất hữu ích khi cần xác định kiểu dữ liệu, nhưng kết quả trả về không phải lúc nào cũng trực quan. Một số giá trị đặc biệt có thể khiến bạn hiểu sai kiểu dữ liệu nếu chỉ dựa vào kết quả của toán tử này.

Vì sao typeof null trả về object?

Khi sử dụng typeof với null, JavaScript trả về chuỗi "object":

typeof null; // "object"

Điều này không có nghĩa null thực sự là một object. Đây là một đặc điểm đã tồn tại từ những phiên bản đầu tiên của JavaScript và được giữ lại để đảm bảo khả năng tương thích với mã nguồn cũ.

Vì vậy, không nên dùng riêng typeof để kiểm tra một giá trị có phải null hay không. Cách rõ ràng hơn là so sánh trực tiếp:

const value = null;

if (value === null) {
    console.log("Giá trị là null");
}

Cách kiểm tra này giúp phân biệt chính xác null với các object thực sự.

Kiểm tra mảng bằng typeof có chính xác không?

Mảng trong JavaScript thuộc nhóm object, vì vậy typeof không thể phân biệt mảng với một object thông thường:

const numbers = [10, 20, 30];

console.log(typeof numbers); // "object"

Nếu mục đích là xác định một giá trị có phải mảng hay không, nên sử dụng Array.isArray(). Phương thức này cho kết quả trực tiếp dưới dạng true hoặc false:

const numbers = [10, 20, 30];

console.log(Array.isArray(numbers)); // true
console.log(Array.isArray({})); // false

Do đó, typeof phù hợp để nhận biết nhóm kiểu dữ liệu tổng quát, còn Array.isArray() nên được ưu tiên khi cần kiểm tra riêng mảng.

Phân biệt typeof với cách kiểm tra kiểu dữ liệu khác

typeof thường là lựa chọn nhanh khi cần kiểm tra các kiểu dữ liệu cơ bản như string, number, boolean, undefined hoặc function. Tuy nhiên, với những trường hợp đặc biệt như null, mảng hoặc các object cụ thể, nên kết hợp phương pháp kiểm tra phù hợp.

const name = "Web Mới";
const numbers = [1, 2, 3];
const value = null;

console.log(typeof name); // "string"
console.log(Array.isArray(numbers)); // true
console.log(value === null); // true

Cách tiếp cận này giúp việc kiểm tra dữ liệu rõ ràng hơn thay vì cố gắng dùng typeof cho mọi tình huống. Khi xử lý dữ liệu từ biểu mẫu, API hoặc các nguồn không chắc chắn về kiểu dữ liệu, việc chọn đúng phương thức kiểm tra sẽ giúp hạn chế lỗi trong quá trình thực thi chương trình.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Toán tử typeof trong JavaScript.

  • ★★★★★ ★★★★★
  • 0 Bình luận
CEO Bùi Tấn Lực | Founder Web Mới
Bùi Tấn Lực
Tìm hiểu về CEO Bùi Tấn Lực, Founder Web Mới với nhiều năm kinh nghiệm trong lĩnh vực phát triển website, SEO và chia sẻ kiến thức công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Toán tử typeof trong JavaScript
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !