JavaScript 基础数据类型
- 原始类型(Primitive Types):存储简单的数据值,包括:
- 布尔型(Boolean):true 或 false
- 数字型(Number):整数或浮点数
- 字符串型(String):由字符组成的序列
- null:表示空值
- undefined:表示未赋值
- Symbol(ES6):唯一且不可变的值
引用数据类型
- 引用类型(Reference Types):存储对对象的引用,包括:
- 对象(Object):包含属性和方法的集合
- 数组(Array):存储元素的有序集合
- 函数(Function):包含可执行代码的块
区别
特征 | 基础数据类型 | 引用数据类型 |
---|---|---|
存储方式 | 栈内存 | 堆内存 |
值传递 | 值传递(按值复制) | 引用传递(按引用复制) |
可变性 | 不可变 | 可变 |
内存占用 | 小 | 大 |
总结
基础数据类型存储简单的数据值,在内存中直接存储其值。引用数据类型存储由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度,在内存中存储对象的地址。
当原始类型作为函数参数传递时,会按值进行复制。这意味着对副本所做的任何更改都不会影响原始值。
当引用类型作为函数参数传递时,会按引用进行复制。这意味着对副本所做的任何更改都会影响原始对象。