深入理解JavaScript系列
文章平均质量分 77
Anpoly
这个作者很懒,什么都没留下…
展开
-
深入理解JavaScript执行上下文栈
执行顺序在上一篇关于声明提升的文章中我们可以了解到,js执行代码时并不是直观的顺序执行。function a() { console.log('a0')}a() //a1function a() { console.log('a1')}a() //a1这是因为JavaScript并不是一行一行的解析和执行程序,而是一段一段的解析执行。当执行每一段代码...原创 2018-04-24 00:49:20 · 3785 阅读 · 0 评论 -
深入理解JavaScript声明提升
JavaScript中的变量声明提升我们先来看一段代码console.log(a) //undefinedvar a = 1上面这两行代码不难理解, var定义的变量声明都会被提升至本作用域的顶部。所以上面的两行代码等价于下面的三行代码。var aconsole.log(a)a = 1再来看console.log(a) //报错a = 1前面已经...原创 2018-04-22 01:09:31 · 3419 阅读 · 1 评论 -
深入理解JavaScript变量对象
在上一篇《深入理解JavaScript执行上下文栈》,我们已经介绍了执行上下文相关概念:执行上下文分类:全局上下文、函数上下文 全局上下文:执行全局代码时,创建全局上下文。 函数上下文:执行函数时,创建函数上下文。 主要属性:变量对象(Variable object,VO)作用域链(Scope chain)this这一章节我们主要针对执行上下文中的变量对象进...原创 2018-04-24 15:38:29 · 3325 阅读 · 0 评论 -
深入理解JavaScript执行上下文
在《深入理解JavaScript执行上下文栈》这篇文章中,我们已经介绍了执行上下文相关概念:执行上下文分类:全局上下文、函数上下文 全局上下文:执行全局代码时,创建全局上下文。 函数上下文:执行函数时,创建函数上下文。 主要属性:变量对象(Variable object,VO)作用域链(Scope chain)this这一篇我们将介绍执行上下文的具体处理过程。...原创 2018-05-12 15:22:17 · 2262 阅读 · 0 评论 -
深入理解JavaScript原型与原型链
构造函数与对象我们先使用构造函数创建对象:function Person() {}var person = new Person()在上面的例子中,Person就是一个构造函数,使用new创建了一个实例对象person。当然除了上面示例所示创建实例对象外,也可以使用JavaScript的内置对象(Object、Array、Date等需要new来创建实例对象的内部对象)创建一个...原创 2018-05-07 01:37:24 · 3928 阅读 · 1 评论 -
深入理解JavaScript闭包
定义闭包的定义: 闭包是指那些能访问自由变量的函数。自由变量: 自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量。所以我们可以理解为闭包是由 函数 + 自由变量 组成的。换句话说,闭包就是函数和被创建的函数中的作用域对象的组合。所以在理论上所有JavaScript函数都是闭包。我们看一下实践中闭包的定义:即使创建它的上下文已经...原创 2018-05-13 19:23:26 · 1779 阅读 · 0 评论 -
深入理解JavaScript作用域链
在《深入理解JavaScript执行上下文栈》这篇文章中,我们已经介绍了执行上下文相关概念:执行上下文分类:全局上下文、函数上下文 全局上下文:执行全局代码时,创建全局上下文。 函数上下文:执行函数时,创建函数上下文。 主要属性:变量对象(Variable object,VO)作用域链(Scope chain)this这一章节我们主要针对执行上下文中的作用域链进...原创 2018-04-28 18:28:13 · 3106 阅读 · 0 评论