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

js typeof 类型

typeof 是 JavaScript 中的一个一元运算符,用于检测一个变量或表达式的类型。它会返回一个字符串,表示未经计算的操作数的数据类型。

基本用法

代码语言:txt
复制
typeof operand

返回值

typeof 运算符会返回以下字符串之一:

  • "undefined": 如果操作数未定义。
  • "boolean": 如果操作数是布尔值。
  • "number": 如果操作数是数字。
  • "string": 如果操作数是字符串。
  • "bigint": 如果操作数是 BigInt 类型(ES2020 引入)。
  • "symbol": 如果操作数是 Symbol 类型(ES6 引入)。
  • "function": 如果操作数是函数。
  • "object": 如果操作数是对象或 null(这是一个历史遗留问题,typeof null 会返回 "object",实际上 null 是一个基本数据类型)。

示例

代码语言:txt
复制
console.log(typeof undefined); // "undefined"
console.log(typeof true); // "boolean"
console.log(typeof 42); // "number"
console.log(typeof "Hello"); // "string"
console.log(typeof BigInt(9007199254740991)); // "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"(数组也是对象)

注意事项

  1. typeof 对于基本数据类型(除了 null)的检测是准确的,但对于引用数据类型(如对象、数组、日期等)都会返回 "object",因此它不能准确地区分这些类型。
  2. 对于 nulltypeof 返回 "object",这是一个已知的历史遗留问题。如果需要准确检测 null,可以使用严格相等运算符(===)。
  3. 对于函数,typeof 返回 "function",这是一个特例,因为函数在 JavaScript 中实际上是对象的一种特殊类型。

应用场景

  • 在编写可接收多种类型参数的函数时,可以使用 typeof 进行类型检查,以确保参数类型正确。
  • 在调试代码时,可以使用 typeof 来检查变量的类型,以帮助定位问题。

解决 typeof 的局限性

由于 typeof 对于引用数据类型的检测不够准确,可以使用其他方法来弥补这一不足,例如:

  • 使用 instanceof 运算符来检测对象的具体类型(如 array instanceof Array)。
  • 使用 Object.prototype.toString.call() 方法来获取对象的内部 [[Class]] 属性,从而判断对象的具体类型(如 Object.prototype.toString.call([]) === "[object Array]")。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券