新闻中心

J*aScript数据类型有哪些_如何检测它们?

2025-12-15
浏览次数:
返回列表
J*aScript有8种数据类型:7种原始类型(string、number、boolean、null、undefined、symbol、bigint)和1种引用类型(object);检测时应优先用typeof判断原始类型(需单独处理null),复杂类型统一用Object.prototype.toString.call()确保准确。

javascript数据类型有哪些_如何检测它们?

J*aScript 有 8 种数据类型:7 种原始类型(stringnumberbooleannullundefinedsymbolbigint)和 1 种引用类型(object,包括数组、函数、日期、正则、Map、Set 等)。检测时不能只靠 typeof,尤其要小心 null 和数组、函数等特殊情况。

用 typeof 检测原始类型(除 null 外)

typeof 对大多数原始值表现良好,但对 null 返回 "object" 是历史遗留 bug,需单独处理。

  • typeof "hi" → "string"
  • typeof 42 → "number"
  • typeof true → "boolean"
  • typeof undefined → "undefined"
  • typeof Symbol() → "symbol"
  • typeof 1n → "bigint"
  • typeof null → "object"(⚠️错误!需额外判断)

准确识别 null 和 object 子类型

typeof 无法区分普通对象、数组、日期、正则等。推荐组合使用 Object.prototype.toString.call() —— 它返回标准格式的字符串标签,最可靠。

  • Object.prototype.toString.call(null) → "[object Null]"
  • Object.prototype.toString.call([]) → "[object Array]"
  • Object.prototype.toString.call(/abc/) → "[object RegExp]"
  • Object.prototype.toString.call(new Date()) → "[object Date]"
  • Object.prototype.toString.call({}) → "[object Object]"

可封装成工具函数:

AI Code Reviewer AI Code Reviewer

AI自动审核代码

AI Code Reviewer 112 查看详情 AI Code Reviewer
function getType(value) {
  return Object.prototype.toString.call(value).slice(8, -1);
}
// getType([1,2]) → "Array"
// getType(null) → "Null"

检测函数与特殊对象

typeof 对函数返回 "function",这是少数例外;而 instanceofconstructor 易受原型链污染或跨 iframe 失效,不推荐作为主检测方式。

  • typeof function(){} → "function"
  • typeof class C{} → "function"(类本质也是函数)
  • getType(async () => {}) → "AsyncFunction"
  • getType(new Map()) → "Map"getType(new Set()) → "Set"

快速判断真假值与存在性

日常开发中,常需区分“是否为有效值”,而非严格类型。注意:

  • 假值(falsy)有 6 个:false0-00n""nullundefined
  • !!value 可转为布尔,但会把 0"" 等也判为 false —— 若需排除空字符串或零,应显式比较
  • 检查变量是否存在:用 typeof x !== 'undefined',避免 ReferenceError

基本上就这些。记住核心原则:原始类型优先用 typeof(记得特判 null),复杂类型统一用 Object.prototype.toString.call(),既准确又兼容性好。

以上就是J*aScript数据类型有哪些_如何检测它们?的详细内容,更多请关注其它相关文章!


# java  # 工具  # 有哪些  # javascript  # 昌平区营销网络推广业务  # 设计公司的营销推广模式  # 酒店推广网站推荐语大全  # 如何优化推广渠道营销  # 提供网站建设价格  # 有哪些医药电商网站推广  # 南京网站建设哪里最便宜  # 襄阳seo视频  # 南充seo公司推荐23火星  # 沧州网站建设银行图片  # 中文网  # 相关文章  # 二进制数  # 有效值  # 这是  # 高阶  # 如何处理  # 中有  # 子类 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 如何在J*a中实现统一对象行为接口_项目大型化时的接口规范化  J*aScript实现动态背景色下的文本与按钮颜色自适应调整  一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】  CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示  css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间  韩剧圈正版入口页面_韩剧圈官网登录链接  poki网页游戏推荐_poki免费游戏平台入口  学习通网页版快速入口 学习通官网网页版直接打开  qq邮箱日历功能怎么用_创建日程与会议邀请的技巧  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  Win11如何使用Windows Sandbox Win11沙盒功能开启与使用教程【详解】  C++如何比较两个字符串_C++ string compare函数与操作符对比  html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】  在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验  4399体育竞技小游戏_4399小游戏赛事入口  俄罗斯Yandex免登录入口_Yandex搜索引擎官网一键直达  C++如何实现线程池_C++11手动实现一个简单的固定大小线程池  微信网页版扫码登录入口 微信网页版二维码登录入口  如何将一个大型PHP应用拆分为多个Composer包_微服务与模块化架构的Composer实践  Python字典中优雅地迭代剩余元素的方法  高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法  Win11怎么开启省电模式_Win11电池节电模式自动开启  新三国志曹操传110级星符试炼夏侯渊极难攻略  AO3访问入口汇总 AO3网页版同人作品一键直达  三星GalaxyZFold5怎样在相册制作折叠屏分镜_iPhone三星GalaxyZFold5相册制作折叠屏分镜【创意编辑】  如何使 Jest 模拟函数默认抛出错误以提高测试效率  哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法  三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升  手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析  微博网页版首页入口 微博电脑端官网登录链接  深入理解J*a编译器的兼容性选项:从-source到--release  C++如何解决segmentation fault_C++段错误调试与原因分析  Composer如何解决json扩展缺失的错误  C++ string find函数返回值npos详解_C++字符串查找失败的判断条件  虫虫漫画精品漫画官网_虫虫漫画精品漫画官网进入精品漫画  蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】  微信网页版官方入口教程 微信网页版网页版快速登录步骤  AO3网页版最新入口合集 Archive of Our Own在线访问指南  CSS如何设置hover状态颜色_hover伪类调整背景或文字颜色  如何有效阻止外部脚本意外修改内联样式的高度属性  Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理  一加Ace 6T支持全新明眸护眼:通过了最严苛的护眼小金标认证  win11如何加载ICC颜色配置文件 Win11校色文件安装与显示器色彩管理【指南】  印象笔记如何设提醒任务防漏执行_印象笔记设提醒任务防漏执行【任务提醒】  C++如何生成随机数_C++ random库使用方法与范围设置  c++中为什么推荐使用using替代typedef_c++现代化类型别名  FullCalendar 自定义按钮样式定制指南  PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误  极兔快递快件信息查询系统 极兔快递官网运单号追踪 

搜索