脚本宝典收集整理的这篇文章主要介绍了

体验jaivascript之美第二课 全局对象、外部环境、声明提升

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

当程序在浏览器中运行的时候,js引擎会产生三个东西。

体验jaivascript之美第二课 全局对象、外部环境、声明提升-脚本宝典
1.全局对象 在js程序任何地方都能访问到的对象,在浏览器中是window

2.this 变量指向window

nodejs中 this是什么?

3.外部环境

暂时不讲。

一图抵万言

好,我知道js引擎怎么折腾你的代码,那么我们看看执行上下文,也就是管理正在运行的程序的部分是如何工作的。

不废话是时候该上代码了。

console.log(a);
var a =12;
b();
function b(){
  console.log(5);
}

结果是啥你想对了没?

为什么这样?

因为有一个变量声明提升的过程。

记住一句话,变量声明提前,赋值原地不动。函数声明直接提前。

这里再来一个问题为什么这样?

说这个之前先说一个例子,

console.log(a);![js运行原理创建](/Users/L/腾讯课堂/深入了解js/js运行原理创建.png)![js运行原理创建](/Users/L/腾讯课堂/深入了解js/js运行原理创建.png)
b();
functon b(){
  console.log(5);
}

这里要注意,undefined,是一个值,不等于不定义变量

程序执行和人眼阅读类似,从上到下,从左到右,执行过去的不会再回去执行一遍。

执行过程,函数执行和销毁过程。

函数就像刷盘子,你懂得,后进先出。

变量预解析,赋值外部环境之间的关系。

为什么有预解析。

ES6作用域,let关键字 块级作用域

var

let

作业:寻找各大公司函数预解析题目10道题,要求做对8道。如果做不对,继续找,直到合格。

如有疑问加入和更多资料,**

QQ群:552079864

总结

以上是脚本宝典为你收集整理的

体验jaivascript之美第二课 全局对象、外部环境、声明提升

全部内容,希望文章能够帮你解决

体验jaivascript之美第二课 全局对象、外部环境、声明提升

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过