感受JavaScript之美
Posted 面包理想
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了感受JavaScript之美相关的知识,希望对你有一定的参考价值。
当程序在浏览器中运行的时候,js引擎会产生三个东西。
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道!
如果做不对,继续找,直到合格。
→如需资料和更多交流,可以联系面包君。←
未完待续......
(下一篇讲:对象、类型、操作符)
以上是关于感受JavaScript之美的主要内容,如果未能解决你的问题,请参考以下文章