1

浏览器想要执行js代码,需要:

  1. 从电脑中分配出一块内存,用来执行代码。栈内存(stack) 栈内存包括变量存储空间、值存储空间
  2. 分配一个主线程,自上而下执行代码

数据类型分为:值数据类型、引用数据类型

面试题01——值类型js执行过程

let a = 12;
let b = a;
b = 13;
console.log(a,b) //12,13

值数据类型的执行过程是:

  1. 创建变量a,放到当前栈内存的变量存储空间
  2. 创建一个值12,放到当前栈内存的值存储空间

(简单的值数据类型是这样存储的,复杂的引用数据类型不是这样存储的)

  1. = 是赋值。让变量和值关联起来

面试题02 - 引用数据类型的js执行过程

let n = {name:'小明'};
let m = n;
m.name = '小红';
console.log(n.name) //'小红'

~~~~ 引用数据类型的执行过程是:

  1. 创建变量n,放到栈内存的变量存储空间(同上)
  2. 在内存中,分配一块新内存,存储引用类型的值。(堆内存 Heap)堆内存有个16进制的地址
  3. 把值以键值对的形式,依次存储到堆内存中
  4. 把堆内存的地址和变量关联起来(此时 栈内存的值存储空间是一个地址)

1.png
2.png
image.png


麦子
23 声望3 粉丝

学习前端