1.基本概念
-
什么是执行上下文?当函数在运行的时候,会创建一个执行环境,这个执行环境就叫执行上下文(execution context).
-
数据是如何存储的?在执行上下文中会创建一个变量对象(variable object),基础数据类型的变量名和值会保存在变量对象中,引用类型的值保存在堆中,变量对象中存储的是内存地址,内存地址指向堆中具体的值,我们可以通过操作对象的引用地址来操作对象.
-
基础数据类型和引用数据类型分类:基本数据类型有7种,分别是Undefined、Null、Boolean、Number、String、BigInt(es10新增)和Symbol(es6新增),引用数据类型有1种Object.
1.1. 数据的存储,下面笔者通过demo和图来描述一下数据具体是如何存储的
function data () {
var a = 1;
var b = {
name: 'jack'
}
var c = [1, 2, 3];
}
// 执行上下文
let ExecutionContext = {
// 变量对象
VO: {
a: 1,
b: '0x1111',
c: '0x2222'
}
}
1.2. 数据的操作,基本数据类型赋值是值的拷贝,复制的是值本身;
var a = 1;
var b = a;
b = 2;
console.log(a); // 1
var ExecuteContext = {
VO: