数据类型


数据类型如下:

String Number null undefined Boolean Object Symbol Bigint

JS是基于对象的语言除了null和undefined都基于Object

基本数据

基本数据类型存于栈 以栈[变量,值]的形式 它们之间是相互独立的,修改一个变量不会影响其他的变量。需要注意的是 长字符串与双精度的数字是会被放到堆中的(可以f12控制台录制堆内存测试)

基本类型是不可变的(immutable),只有对象是可变的(mutable). 有时我们会尝试“改变”字符串的内容,但在JS中,任何看似对string值的”修改”操作,实际都是创建新的string值。任何方法都无法改变一个基本类型的值

let a = 12;
// (1)创建一个值(基本类型值直接存储在栈内存中即可);
// (2)创建一个变量a ,把其储存到VO(GLOBAL)中;
// (3)让创建的变量a 和创建的值12 关联在一起 => =赋值的操作
let b = a;
// 创建一个变量b,让其和a的值12关联
b = 13;
// (1)创建一个值13,
// (2)让创建的变量b 和创建的值13 关联在一起 => =赋值的操作

引用数据类型

引用数据类型内容存于堆 以栈[变量,堆地址] =》堆[内容]的形式 如果两个变量堆地址相同 那么某个变量修改变量属性时,另一个变量也会被影响

对于引用数组类型重新赋值 相当于改变可堆地址 是不会影响到之前的堆内容的


文章作者: iamfugui
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 iamfugui !
评论
  目录