一、EC(G)全局执行上下文
1.默认情况下浏览器会生成一个全局执行上下文
2.默认情况下它会自动出现在栈底(浏览器关闭的时候释放)
二、VO(G)全局变量对象--全局执行上下文中的对象
三、GO全局对象
1.浏览器在加载界面的时候会创建一个空间,它里面存放了一些我们在JS可以直接访问的API(setTimeout setInterval JSON...)
2.为了JS方便找到它们,在全局执行上下文当中的VO中定义了一个变量叫window
1.浏览器在加载界面后默认情况下会创建 执行环境栈 执行上下文 以及GO
2.EC(G)内部有VO(G),专门存放当前上下文里面所出现的数据
3.EC(G)会在浏览器把当前界面关闭之后,才会执行出栈,
4.基本类型存放在栈中
5.作用域链查找机制最终会在GO中找,找不到就报错
函数
1.函数的变量提升与变量不同的点是函数在提升阶段函数是声明+定义都做提升,而变量是只做声明提升
2.函数也是一个对象,因此会占用一个堆内存
3.函数在创建的时候就会确定好它的作用域
4.函数所对应的堆内存当中会将函数体以字符串的方式保存起来(直接打印函数名)
函数的执行过程:
1.确定作用域链
2.确定this
3.初始化arguments
4.形参赋值
5.变量提升
6.代码执行