js数据类型之堆栈存储

    技术2022-07-10  88

    1. 浏览器执行JS代码 ①. 从电脑内存中分配出一块内存,用来执行代码(栈内存——>stack) ②. 分配一个主线程用来自上而下执行JS代码 2. 简单值的存储 声明一个let a = 12; 的全过程 第一步——创建变量a, 放到栈内存的变量存储区 第二步——创建值12,把它存到栈内存值区域中 第三步——“=”为赋值,让值与变量关联 3. 复杂值的存储 第一步——内存中分配出一块新内存,存引用类型值(堆–heap)==>内存有一个16进制地址 第二步——对象中的键值对依次存储到堆内存里 第三步——把堆内存地址和变量关联起来

    区别: 基本数据类型——按值操作(直接操作的是值),多以也叫做值类型 引用数据类型——操作的是堆内存的地址(按引用地址操作)

    例题

    let n = [10,20]; let m = n; let x = m; m[0] = 100; x = [30,40]; x[0] = 200; m = x; m[1] = 300; n[2] = 400; 问此时的m,n,x

    如上图所示,一个图就可以很好的解释,在引用数据类型的赋值上,只是将栈内存中存储的地址赋给对方,并不是拷贝,所以改变任意一个引用的值都会引起改变。 JS赋值的特点是关联,而不是拷贝

    Processed: 0.030, SQL: 9