JavaScript 有哪几种数据类型?请简要描述每种数据类型的特点。

JavaScript 有哪几种数据类型?

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

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

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

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

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

类型关键字/表示方式是否可变特点与典型值示例常见用途 / 注意事项
Object{}[]functionnew 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 结果)

typeof undefined   // "undefined"
typeof null        // "object" ← 著名 bug
typeof true        // "boolean"
typeof 123         // "number"
typeof 123n        // "bigint"
typeof "hello"     // "string"
typeof Symbol()    // "symbol"
typeof {}          // "object"
typeof []          // "object"
typeof function(){} // "function"

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

文章已创建 4549

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部