讲师中心 微信公众号
AI工具推荐 视频效率加速

JavaScript有哪些数据类型_如何区分它们

雨宇姑娘_5170

雨宇姑娘_5170

发布时间:2025-12-26 19:56:57

|

926人浏览过

|

来源于php中文网

原创

JavaScript有8种数据类型:7种原始类型(string、number、boolean、null、undefined、symbol、bigint)按值存储且不可变,1种引用类型(object及其派生类型)按引用存储且可变;判断类型应组合使用typeof、instanceof和Object.prototype.toString.call()。

javascript有哪些数据类型_如何区分它们

JavaScript 有 8 种数据类型:7 种原始类型(primitive)和 1 种引用类型(object)。区分它们的关键在于**值的存储方式、比较行为和 typeof / instanceof / Object.prototype.toString.call() 的返回结果**。

7 种原始类型:按值存储,不可变

原始类型直接存放在栈内存中,赋值是复制值本身,比较时看“值是否相等”:

  • string:如 "hello"、`world`
  • number:包括整数、小数、NaN、Infinity(注意:typeof NaN 是 "number")
  • boolean:只有 true 和 false
  • null:表示“空值”,typeof null 返回 "object"(这是历史遗留 bug,不是对象)
  • undefined:变量声明未赋值,或对象属性不存在时的默认值
  • symbol(ES6):唯一且不可变的值,常用于对象属性键,避免命名冲突
  • bigint(ES2020):用 n 结尾的大整数,如 123n,不能与 number 混用运算

1 种引用类型:按引用存储,可变

object 是唯一的基础引用类型,其他如 Array、Function、Date、RegExp、Map、Set 等,都是它的派生对象。它们存储在堆内存中,变量保存的是指向堆中地址的引用:

Java注释规范Skills
Java注释规范Skills

当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。

下载
  • 赋值是复制引用(即两个变量指向同一块内存)
  • 比较时看“是否指向同一个对象”,而非内容是否相同
  • typeof [] → "object",typeof function() {} → "function"(函数是 object 的特殊形态,但 typeof 给了特例)

准确判断类型的三大方法

单靠 typeof 不够可靠(比如 null、数组、正则都返回 "object"),推荐组合使用:

立即学习“Java免费学习笔记(深入)”;

  • typeof:适合快速区分原始类型(除 null 外)和函数
  • instanceof:检查对象是否由某个构造函数创建(如 [] instanceof Array → true),但跨 iframe 会失效
  • Object.prototype.toString.call():最可靠,返回标准字符串,如:
    Object.prototype.toString.call([]) → "[object Array]"
    Object.prototype.toString.call(null) → "[object Null]"
    Object.prototype.toString.call(123) → "[object Number]"

几个易混淆点提醒

实际开发中容易踩坑的地方:

  • null == undefined 为 true,但 null === undefined 为 false(类型不同)
  • typeof [] 和 typeof {} 都是 "object",但它们是不同子类型
  • typeof /regex/ 在多数环境是 "object",少数浏览器(如旧版 Safari)曾返回 "function";稳妥起见仍用 toString.call
  • function 虽然 typeof 返回 "function",但它本质是 Object 的实例:Function instanceof Object → true

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
es6新特性
es6新特性

es6新特性有:1、块级作用域变量;2、箭头函数;3、模板字符串;4、解构赋值;5、默认参数;6、 扩展运算符;7、 类和继承;8、Promise。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

285

2023.07.17

es6新特性有哪些
es6新特性有哪些

es6的新特性有:1、块级作用域;2、箭头函数;3、解构赋值;4、默认参数;5、扩展运算符;6、模板字符串;7、类和模块;8、迭代器和生成器;9、Promise对象;10、模块化导入和导出等等。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

406

2023.08.04

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

395

2025.12.24

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3211

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

554

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

542

2026.02.12

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

6879

2023.08.02

java中boolean的用法
java中boolean的用法

在Java中,boolean是一种基本数据类型,它只有两个可能的值:true和false。boolean类型经常用于条件测试,比如进行比较或者检查某个条件是否满足。想了解更多java中boolean的相关内容,可以阅读本专题下面的文章。

2150

2023.11.13

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebStorm 官方调试文档
WebStorm 官方调试文档

共0课时 | 0人学习

React 教程
React 教程

共58课时 | 12.4万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn