昨天没有摆烂,在复习计算机组成原理,因为疫情原因,也不知道什么时候能考试,最近更新应该会断断续续的。因为要把学习的重心更多的放在书本上了。
浏览器的运行机制
- 为了能够让代码执行,浏览器会形成一个执行环境栈ECStack(Execution Context Stack)
- 有了栈内存代码就可以自上而下的执行了,只不过刚开始,是要把全局下的代码先执行
- 开始执行全局下的代码,就会形成一个全局执行上下文EC(GLOBAL 简写 为G)
- 对应代码会在自己所属的执行上下文中执行,而这个环境有一个存放变量的地方: 变量对象(VO/AO)
变量提升机制
就是在执行上下文中,JS代码执行之前要做的事情
- 首先会默认把所有带var和function关键字的进行声明或者定义
- 带var的只是声明
- 带function是声明+定义
GO和VO的区别
-
GO(全局对象) 浏览器默认会自带很多供js调取使用的内置API,这些属性方法都在全局对象中存储着,在浏览器端把GO对象赋值给window,在node端把GO赋值给了global
-
VO(全局变量对象) 当全局代码执行过程中,会声明一些变量,这些变量存储在全局变量对象中
-
区别
GO是浏览器天生自带的存储属性和方法的堆,是一个对象;
VO是我们自己写代码创建的变量要存储的地方,是栈内存。
总结
理论性的知识太多了,现在看来都看不太懂,还没有考试的消息,最近肯定会以期末考试的东西为主了。等结束后,定会坚持每天更新的,今就到这了,大家加油。