javaScript 有八种基本数据类型,分为原始数据类型和引用数据类型
1. 原始数据类型包括
- Undefined:表示未初始化。【一个变量声明后但未赋值时,它的默认值未 undefined】;
- Null:表示一个空值或一个不存在的对象。null 是一个特殊的关键字,代表“无值”;
- Boolean:只有两个值:true 和 false,用于逻辑判断。
- Number:表示双精度 64 位二进制格式的浮点数,可以表示整数和浮点数。特殊值包括 NaN(Not a Number)和 Infinity。
- String:表示字符序列,可以用单引号、双引号或反引号括起来的文本。
- Symbol:用来创建唯一且不可变的值,主要用于对象属性的唯一标识,避免属性名冲突。
- BigInt:用于表示任意精度的大整数,允许操作超过 Number 能表示的范围的整数。
2. 引用类型


3. 两者的区别
3.1. 存储区别
原始类型
存储在栈
中,值直接保存在变量访问的位置,由于其大小固定且频繁使用,存储在栈中具有较高的性能。引用类型
存储在堆
中,占用空间较大且大小不固定,变量保存的是实际对象的引用,也就是指针,这些引用存储在栈中。
3.2. 赋值方式区别
例如:将一个 number 类型的变量赋值给另一个变量,两个变量互不影响。
- 引用类型:复制的是引用(指针)。多个变量引用同一个对象时,一个变量的修改会影响其他变量。