📅  最后修改于: 2023-12-03 15:24:12.685000             🧑  作者: Mango
在 JavaScript 中,typeof
是一个用于判断数据类型的操作符。它返回一个字符串,表示给定值的数据类型。
typeof
的语法如下:
typeof value
其中,value
可以是任意 JavaScript 值。
typeof
返回一个字符串,表示 value
的数据类型。下面是 typeof
可能返回的字符串及其对应的数据类型。
| 字符串 | 数据类型 | | ------- | --------- | | "undefined" | undefined | | "boolean" | boolean | | "number" | number | | "string" | string | | "object" | object | | "function" | function | | "symbol" | symbol |
例如:
typeof undefined; //=> "undefined"
typeof true; //=> "boolean"
typeof 42; //=> "number"
typeof "Hello, world!"; //=> "string"
typeof {}; //=> "object"
typeof function() {}; //=> "function"
typeof Symbol(); //=> "symbol"
需要注意的是,虽然 typeof
对大多数数据类型都能返回正确的结果,但对于 null
和一些对象类型(如数组和日期),typeof
是有局限性的。例如:
typeof null; //=> "object"
typeof []; //=> "object"
typeof new Date(); //=> "object"
因此,如果需要精确判断一个值的类型,建议使用其他方式,如 Object.prototype.toString.call(value)
。
typeof
的常见应用包括:
let x;
if (typeof x === "undefined") {
// x 未定义
}
function foo() {}
if (typeof foo === "function") {
// foo 是函数
}
function add(x, y) {
if (typeof x !== "number" || typeof y !== "number") {
throw new Error("参数必须是数字");
}
return x + y;
}
function isDate(value) {
return typeof value === "object" && Object.prototype.toString.call(value) === "[object Date]";
}
typeof
是一个用于判断数据类型的操作符,它返回一个字符串,表示给定值的数据类型。它可以帮助我们快速确定变量类型、判断一个值是否为函数类型等。但需要注意,它对于某些类型的判断是有局限性的。