js基础 - js有哪些数据类型(区别有哪些)

54 阅读1分钟

原始类型

  1. Number: 表示双精度64位二进制格式浮点数,可以表示整数和浮点数,可以·精确表示从 -2^53 + 1 到 2^53 - 1 之间的所有整数
  2. String: 表示字符序列
  3. Boolean: 表示布尔类型,有true和false两个值,用于逻辑判断
  4. Undefined:表示变量未初始化,let a; a声明但是未初始化,默认值为undefined
  5. Null: 表示一个空值或者不存在的对象,一般引用类型变量声明后会初始化为null。表示未指向具体对象。
  6. Symbol:表示创建唯一不可变的值,主要用于对象属性的唯一标识\color{green}{表示创建唯一不可变的值,主要用于对象属性的唯一标识},防止对象属性名冲突
  7. BigInt: 用于表示任意大小的整数,不受2^53 - 1 的限制,

引用类型

Object:包括普通对象,数组(Array),函数(Function)

区别

存储区别

  1. 原始类型存储在栈(stack)中,值直接保存在变量访问的位置,由于其大小固定且频繁使用,存储在栈中具有更高的性能
  2. 引用类型存储在对(heap)中,占用空间较大且大小不固定,变量保存的是对实际对象的引用(即指针),这些引用保存栈中

赋值方式区别

  1. 原始类型复制的是值本身,例如将一个String类型变量赋值给另一个变量,两个变量各自独立
  2. 引用类型复制的是引用(指针),将一个对象的变量赋值给另一个变量,一个变量中属性的修改会影响其他变量