Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Toán tử typeof trong JavaScript

Định nghĩa

typeof operand trả về chuỗi chỉ kiểu dữ liệu của toán hạng. Là unary operator.

Bảng trả về

Kiểu giá trịtypeof trả về
Number (kể cả NaN, Infinity)"number"
String"string"
Boolean"boolean"
Undefined"undefined"
Null"object" ⚠️
Function"function"
Object (Array, Date, RegExp...)"object"
Symbol (ES6)"symbol"
BigInt (ES2020)"bigint"

Cạm bẫy nổi tiếng

typeof null === "object"; // true – bug từ phiên bản đầu, không sửa được vì break web
typeof [] === "object";   // true – mảng là object
typeof new Date() === "object"; // true

Phân biệt Object chi tiết

// Kiểm tra mảng
Array.isArray([]); // true

// Kiểm tra null
val === null; // chỉ cách tin cậy

// Kiểm tra object thuần (plain object)
Object.prototype.toString.call({}) === "[object Object]"; // true
Object.prototype.toString.call([]) === "[object Array]";  // true

Ví dụ thực hành

<script>
var a = 10, b = "String";
var result = (typeof b === "string") ? "B is String" : "B is Numeric";
document.write("Result => " + result); // "B is String"
</script>