JavaScript的typeof返回哪些数据类型

JavaScript的typeof返回哪些数据类型

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

  1. "undefined"
  • 表示变量未定义或未赋值。
javascript 复制代码
let a;
console.log(typeof a); // "undefined"
console.log(typeof b); // "undefined"(未声明的变量)
  1. "boolean"
  • 表示布尔值(true 或 false)。
vbnet 复制代码
let isTrue = true;
console.log(typeof isTrue); // "boolean"
  1. "number"
  • 表示数字类型(包括整数、浮点数、NaN 和 Infinity)。
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"(特殊对象)
  • 对于内置对象(如 Date、RegExp、Map、Set 等),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

相关推荐
软件派5 小时前
生产动态数据智能风控:阈值判别、趋势预测、异常识别算法工程落地实战
前端·数据库·算法
花开盛夏^.^14 小时前
电脑打开多个浏览器Web窗口占用较大的运行内存的原因
前端·浏览器
Dxy123931021614 小时前
JS DES 加密详解
开发语言·javascript·arcgis
充值内卷14 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++
馒头不想说话15 小时前
实体店老板的24小时AI运营员工,写、剪、发全自动,省下一整个团队工资
前端
椒哥17 小时前
一天被问几十次"允许",我统计了 517 次,然后写了个插件
前端·javascript·github
风骏时光牛马17 小时前
生成一个AI稳定性治理及疑难问题分析标题,只需要一个标题,不需要其他的任何文本。
前端
莫西干式秃头17 小时前
用 AI + threejs 写了个浏览器里的 3D 动作游戏《武来》:砍怪、放技能、开 SU7
前端·人工智能·three.js
kyriewen18 小时前
我测了 6 种防请求竞态的写法:只有 1 种真能打
前端·javascript·程序员
孟健18 小时前
用 WorkBuddy 做个人名片网页,挂上开源设计技能后效果完全不同了
前端·人工智能·ai编程