首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js typeof中返回值

在JavaScript中,typeof操作符用于检测一个变量或表达式的类型,并返回一个表示该类型的字符串。以下是typeof操作符可能返回的所有值及其对应的类型:

基本类型

  1. "undefined":当变量已声明但未赋值时。
  2. "boolean":布尔值truefalse
  3. "number":数字,包括整数和浮点数。
  4. "string":字符串类型。
  5. "bigint":大整数类型(ES2020新增)。
  6. "symbol":符号类型(ES6新增)。
  7. "function":函数类型。

特殊类型

  1. "object":对象类型,包括普通对象、数组、null(这是一个历史遗留问题,typeof null会返回"object")。
  2. "object":对于日期对象、正则表达式对象等,也会返回"object"。
  3. "object":对于Map、Set等ES6新增的数据结构,同样返回"object"。

示例代码

代码语言:txt
复制
console.log(typeof undefined); // "undefined"
console.log(typeof true); // "boolean"
console.log(typeof 42); // "number"
console.log(typeof "Hello"); // "string"
console.log(typeof 10n); // "bigint"
console.log(typeof Symbol("sym")); // "symbol"
console.log(typeof function() {}); // "function"
console.log(typeof null); // "object" (注意这是一个历史遗留问题)
console.log(typeof {}); // "object"
console.log(typeof []); // "object"
console.log(typeof new Date()); // "object"
console.log(typeof /regex/); // "object"

注意事项

  • typeof对于对象类型的判断比较粗糙,除了函数类型外,其他所有对象类型都会返回"object"。
  • 对于需要更精确判断对象类型的场景,可以使用instanceof操作符或者Object.prototype.toString.call()方法。

解决typeof null返回"object"的问题

由于typeof null返回"object"是一个历史遗留问题,没有直接的解决方法。但可以通过以下方式来判断一个变量是否为null

代码语言:txt
复制
if (variable === null) {
    // variable 是 null
}

或者使用更通用的方法来判断变量是否为对象(排除null):

代码语言:txt
复制
if (typeof variable === "object" && variable !== null) {
    // variable 是一个非 null 的对象
}

通过这些方法,可以更准确地判断变量的类型,避免因typeof null返回"object"而带来的混淆。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券