JavaScript的typeof返回哪些数据类型

JavaScript的typeof返回哪些数据类型

在 JavaScript 中,typeof 是一个用于检测变量或表达式类型的操作符。它返回一个表示数据类型的字符串。以下是 typeof 可能返回的结果:

  1. "undefined"
  • 表示变量未定义或未赋值。
javascript 复制代码
let a;
console.log(typeof a); // "undefined"
console.log(typeof b); // "undefined"(未声明的变量)
  1. "boolean"
  • 表示布尔值(truefalse)。
vbnet 复制代码
let isTrue = true;
console.log(typeof isTrue); // "boolean"
  1. "number"
  • 表示数字类型(包括整数、浮点数、NaNInfinity)。
ini 复制代码
let num = 42;
let float = 3.14;
let nan = NaN;
let inf = Infinity;
console.log(typeof num);  // "number"
console.log(typeof float); // "number"
console.log(typeof nan);  // "number"(NaN 是数字类型)
console.log(typeof inf);  // "number"
  1. "string"
  • 表示字符串类型。
ini 复制代码
let str = "Hello, World!";
console.log(typeof str); // "string"
  1. "bigint"
  • 表示大整数类型(BigInt)。
ini 复制代码
let bigNum = 123n;
console.log(typeof bigNum); // "bigint"
  1. "symbol"
  • 表示符号类型(Symbol)。
javascript 复制代码
let sym = Symbol("foo");
console.log(typeof sym); // "symbol"
  1. "object"
  • 表示对象类型(包括普通对象、数组、null 等)。
javascript 复制代码
let obj = { name: "Alice" };
let arr = [1, 2, 3];
let nul = null;
console.log(typeof obj);  // "object"
console.log(typeof arr);  // "object"(数组也是对象)
console.log(typeof nul);  // "object"(null 被错误地识别为对象,这是历史遗留问题)
  1. "function"
  • 表示函数类型。
javascript 复制代码
function foo() {}
console.log(typeof foo); // "function"
  1. "object"(特殊对象)
  • 对于内置对象(如 DateRegExpMapSet 等),typeof 也会返回 "object"
javascript 复制代码
console.log(typeof new Date());      // "object"
console.log(typeof /regex/);        // "object"
console.log(typeof new Map());      // "object"
console.log(typeof new Set());      // "object"

总结

typeof 返回的可能值有:

  • "undefined"
  • "boolean"
  • "number"
  • "string"
  • "bigint"
  • "symbol"
  • "object"
  • "function"

需要注意的是,typeof null 返回 "object",这是 JavaScript 的一个历史遗留问题。如果需要更精确的类型判断,可以使用 Object.prototype.toString.call()instanceof

更多vue相关插件及后台管理模板可访问vue admin reference,代码详情请访问github

相关推荐
hongkid7 分钟前
React Native 如何打包正式apk
javascript·react native·react.js
李少兄9 分钟前
简单讲讲 SVG:前端开发中的矢量图形
前端·svg
前端小万11 分钟前
告别 CJS 库加载兼容坑
前端·前端工程化
恋猫de小郭11 分钟前
Flutter 3.38.1 之后,因为某些框架低级错误导致提交 Store 被拒
android·前端·flutter
JarvanMo15 分钟前
Flutter 需要 Hooks 吗?
前端
光影少年25 分钟前
前端如何虚拟列表优化?
前端·react native·react.js
Moment26 分钟前
一杯茶时间带你基于 Yjs 和 reactflow 构建协同流程图编辑器 😍😍😍
前端·后端·面试
菩提祖师_40 分钟前
量子机器学习在时间序列预测中的应用
开发语言·javascript·爬虫·flutter
invicinble44 分钟前
对于前端数据的生命周期的认识
前端
PieroPc1 小时前
用FastAPI 后端 和 HTML/CSS/JavaScript 前端写一个博客系统 例
前端·html·fastapi