自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello World

欲买桂花同载酒

  • 博客(10)
  • 收藏
  • 关注

原创 深入理解JavaScript原型与原型链

构造函数与对象我们先使用构造函数创建对象:function Person() {}var person = new Person()在上面的例子中,Person就是一个构造函数,使用new创建了一个实例对象person。当然除了上面示例所示创建实例对象外,也可以使用JavaScript的内置对象(Object、Array、Date等需要new来创建实例对象的内部对象)创建一个...

2018-05-07 01:37:24 3966 1

原创 深入理解JavaScript闭包

定义闭包的定义: 闭包是指那些能访问自由变量的函数。自由变量: 自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量。所以我们可以理解为闭包是由 函数 + 自由变量 组成的。换句话说,闭包就是函数和被创建的函数中的作用域对象的组合。所以在理论上所有JavaScript函数都是闭包。我们看一下实践中闭包的定义:即使创建它的上下文已经...

2018-05-13 19:23:26 1797

原创 深入理解JavaScript执行上下文

在《深入理解JavaScript执行上下文栈》这篇文章中,我们已经介绍了执行上下文相关概念:执行上下文分类:全局上下文、函数上下文 全局上下文:执行全局代码时,创建全局上下文。 函数上下文:执行函数时,创建函数上下文。 主要属性:变量对象(Variable object,VO)作用域链(Scope chain)this这一篇我们将介绍执行上下文的具体处理过程。...

2018-05-12 15:22:17 2289

原创 面试经典之快速排序

快速排序是前端面试中经常被问到的一个问题,这里我们借用阮一峰老师的快速排序思想《快速排序(Quicksort)的Javascript实现》原理在数据集之中,选择一个元素作为“基准”。所有小于“基准”的元素,都移到“基准”的左边;所有大于“基准”的元素,都移到“基准”的右边。对“基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。过程以...

2018-05-02 00:54:55 5237

原创 深入理解JavaScript作用域链

在《深入理解JavaScript执行上下文栈》这篇文章中,我们已经介绍了执行上下文相关概念:执行上下文分类:全局上下文、函数上下文 全局上下文:执行全局代码时,创建全局上下文。 函数上下文:执行函数时,创建函数上下文。 主要属性:变量对象(Variable object,VO)作用域链(Scope chain)this这一章节我们主要针对执行上下文中的作用域链进...

2018-04-28 18:28:13 3126

原创 面试经典之深浅拷贝与克隆函数

面试中经常会被问到克隆函数的实现,这篇文章我们就介绍一下克隆函数简单实现以及 JavaScript中的深浅拷贝。首先我们先来了解一下JavaScript中的深浅拷贝:数组拷贝为了更全面了解数组的拷贝,希望大家不要吐槽接下来我们举例使用的神奇数组:var source = [1, null, undefined, {name: 'anjou', age: undefined...

2018-04-28 01:07:02 4360

原创 深入理解JavaScript变量对象

在上一篇《深入理解JavaScript执行上下文栈》,我们已经介绍了执行上下文相关概念:执行上下文分类:全局上下文、函数上下文 全局上下文:执行全局代码时,创建全局上下文。 函数上下文:执行函数时,创建函数上下文。 主要属性:变量对象(Variable object,VO)作用域链(Scope chain)this这一章节我们主要针对执行上下文中的变量对象进...

2018-04-24 15:38:29 3342

原创 深入理解JavaScript执行上下文栈

执行顺序在上一篇关于声明提升的文章中我们可以了解到,js执行代码时并不是直观的顺序执行。function a() { console.log('a0')}a() //a1function a() { console.log('a1')}a() //a1这是因为JavaScript并不是一行一行的解析和执行程序,而是一段一段的解析执行。当执行每一段代码...

2018-04-24 00:49:20 3807

原创 深入理解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 3439 1

原创 面试经典之浏览器渲染流程

由于浏览器的加载、解析、渲染是一个较为复杂的过程,本文将这三部分拆解开来,仅对浏览器渲染部分进行讲解。如有错误,欢迎指正。1.第一阶段:构建DOM树1.进入正题,当网页输入URL时候,浏览器调用相应的资源加载器。2.加载器依赖网页模块建立连接,发起请求并接受回复。3.浏览器接收到各种网页或者资源的数据,其中某些资源可能是同步的也可能是异步的。4.网页被加载给html解释器变为一系列的词语(toke...

2018-04-17 01:26:44 5218

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除