☰
JavaScript 有哪几种数据类型?请简要描述每种数据类型的特点。
2026/11/4 15:37:15 网站建设 项目流程

JavaScript 有哪几种数据类型?

JavaScript 中的数据类型主要分为两大类:

  • 原始类型(Primitive Types)—— 7 种(值类型,按值传递)
  • 对象类型(Object Type)—— 1 种(引用类型,按引用传递)

1. 原始类型(Primitives) — 共 7 种

类型关键字/表示方式是否可变特点与典型值示例常见用途 / 注意事项
undefinedundefined—表示“未定义”,变量声明了但没赋值时的默认值常用来判断变量是否被赋值过
nullnull—表示“空值”或“故意置为空的对象引用”代表“什么都没有”,常用于主动清空对象引用
booleantrue/false不可变只有两个值:真 / 假条件判断、逻辑运算
number数字字面量不可变64位浮点数(IEEE 754 double),包含整数和浮点NaN,Infinity,-Infinity也属于 number
bigint123n或BigInt(123)不可变任意精度整数(ES2020 引入)用于处理超过Number.MAX_SAFE_INTEGER的大整数
string'hello'或"hello"或`hello`不可变文本、字符序列,支持模板字符串长度可任意,推荐使用模板字符串(`)
symbolSymbol('desc')不可变唯一且不可变的值,主要用于创建对象独有的键常用于避免属性名冲突(如私有属性、迭代器等)

2. 对象类型(Object) — 1 种(广义对象)

类型关键字/表示方式是否可变特点与典型值示例常见用途 / 注意事项
Object{}、[]、function、new Date()等可变键值对集合(键通常是字符串或 Symbol)几乎所有非原始类型都是对象,包括:数组、函数、正则、日期、Map、Set、自定义对象等

快速记忆口诀(7 + 1)

原始类型 7 种:
Undefined、Null、Boolean、Number、BigInt、String、Symbol
→“你不逼我逼死你”(谐音记忆)

对象类型 1 种:
所有不是上面 7 种的,都是Object(包括数组、函数等)

常见易混淆点总结

  • typeof null→"object"(历史遗留 bug)
  • typeof NaN→"number"
  • typeof []→"object"
  • typeof function(){}→"function"(特例,虽然本质是对象)
  • 原始类型是不可变的,重新赋值是创建新值,而不是修改原值
  • 对象类型是可变的,修改属性会直接影响原对象

快速对照表(typeof 结果)

typeofundefined// "undefined"typeofnull// "object" ← 著名 bugtypeoftrue// "boolean"typeof123// "number"typeof123n// "bigint"typeof"hello"// "string"typeofSymbol()// "symbol"typeof{}// "object"typeof[]// "object"typeoffunction(){}// "function"

希望这个总结清晰明了!
如果想深入了解某种类型的细节(比如 Symbol 的实际用途、BigInt 的边界情况、对象与原始值的装箱拆箱等),随时告诉我~

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询