js数据类型堆栈底层机制

浏览器执行js代码步骤:

  1. 从电脑内存中分配出一块内存,用来执行代码(栈内存=>Stack)
  2. 分配一个主线程用来自上而下执行js代码
    示例1
/*
 *1.创建变量a,放到当前栈内存变量存储区域
 *2.创建一个值12,把它存储到当前栈内存值区域(简单基本类型这样存储,复杂引用类型不是这样)
 *3.= 为赋值,其实赋值是让变量和值相互关联的过程
 */
let a = 12;
let b =a;
b = 13;
console.log(a);  //12
操作值类型

示例2

/*
 *复杂值(引用类型值)的存储,又分成三个步骤
 *1.在内存中分配出一块新内存,用来存储引用类型值(堆内存=>heap)=>内存有一个16进制地址
 *2.把对象中的键值对(属性名:属性值)依次存储到堆内存中
 *3.把堆内存地址和变量关联起来
 */
let n = {
        name:'珠峰'
};
let m = n;
m.name = '培训';
console.log(n.name);//px
操作引用类型

总结:

  • 基本类型:按值操作(直接操作的是值),所以也叫做值类型
  • 引用类型:操作的是堆内存的地址(按引用地址操作的)

练习:

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;
console.log(n,m,x);
运行机制
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。