2019年12月9日

摘要: 缓存是浏览器性能优化中非常重要的一种方式,我们可知数据请求可以分为:发起请求、后端处理、浏览器响应三个步骤。而前端缓存主要是在“请求”和“响应”中进行。在请求步骤中,浏览器使用缓存就可以不用发送请求,从而减少请求次数;在响应步骤中,如果前后端数据一致,那么数据就无须再从后端传到前端,通过减少响应的内 阅读全文
posted @ 2019-12-09 11:14 叫我爱运动小姐 阅读(211) 评论(0) 推荐(0) 编辑

2019年12月7日

摘要: http是应用层协议,采用请求/响应模型 1、浏览器地址栏输入URL地址后发生了什么? 补充: 浏览器渲染引擎工作流程: 整个过程是逐步完成的。在浏览器渲染完首屏页面后,如果含有js文件对DOM进行操作会造成重排和重绘。 2. HTTP 请求报文与响应报文格式 请求报文:请求行request-lin 阅读全文
posted @ 2019-12-07 12:12 叫我爱运动小姐 阅读(329) 评论(0) 推荐(0) 编辑

2019年11月9日

摘要: 1. obj instanceof Array 我们都知道instanceof是用来判断对象的类型的,并且所有的对象 instanceof Object结果都是true 内部机制是通过判断对象的原型链中是否能找到同类型的prototype 其原理是一层一层查找__proto__,如果和constru 阅读全文
posted @ 2019-11-09 18:16 叫我爱运动小姐 阅读(873) 评论(0) 推荐(0) 编辑
 
摘要: 1. 构造函数 构造函数实际上就是一个函数,但是为了区分普通函数和构造函数,常常将构造函数的首字母大写。 构造函数和普通函数的区别在于:直接调用的函数是普通函数,使用new生成实例的函数是构造函数。 每个构造函数都有一个prototype属性, 实例对象可通过它的constructor访问到它的构造 阅读全文
posted @ 2019-11-09 17:20 叫我爱运动小姐 阅读(219) 评论(0) 推荐(0) 编辑

2019年11月6日

摘要: 上一篇对call和apply的模拟实现做了一个梳理,可参见:模拟实现call、apply,下面将具体研究一下bind啦啦啦 1. bind和call/apply的差别 bind方法会创建一个新函数,返回值是一个绑定了上下文的函数 call和apply是将函数直接执行 描述: bind()函数会创建一 阅读全文
posted @ 2019-11-06 11:26 叫我爱运动小姐 阅读(616) 评论(0) 推荐(0) 编辑

2019年11月4日

摘要: 1. 知识点补充: 首先在模拟实现前,先Mark一些我之前不知道的知识: a. eval(string)函数:可计算某个字符串,并执行其中的JavaScript代码 其中,string是必需传入的待计算或待执行的语句,并且必须是原始字符串的形式! eval(string)相当于<script> st 阅读全文
posted @ 2019-11-04 15:51 叫我爱运动小姐 阅读(560) 评论(0) 推荐(0) 编辑

2019年11月1日

摘要: 闭包 红宝书上对闭包的定义:有权访问另外一个函数作用域中变量的函数。 MDN对闭包的定义是:是能够访问自由变量的函数。 自由变量:是指在当前函数中可以使用的(但是既不是arguments也不是本函数定义的局部变量)。 两个点: 就是说我们常见的比如内部函数从外部函数返回这种状态,该内部函数就是闭包。 阅读全文
posted @ 2019-11-01 18:59 叫我爱运动小姐 阅读(239) 评论(0) 推荐(0) 编辑

2019年10月28日

摘要: 1. 答案是:(严格模式下会报错!非严格模式下输出如下答案) 1 3 3 4 4 分析: 2. 答案: 我容易错的点在show2和show4,分析如下: person1.show2() 实际是执行:()=>console.log(this.a),根据“箭头函数的this指向外层作用域”,该箭头函数外 阅读全文
posted @ 2019-10-28 08:01 叫我爱运动小姐 阅读(427) 评论(0) 推荐(0) 编辑

2019年10月25日

摘要: this既不指向函数自身,也不指向函数的词法作用域!它指向谁完全取决于它在哪里被调用,被谁调用! 绑定规则 总体来说,this的绑定规则有: 1.默认绑定: 默认绑定就是没有应用其他绑定规则时的绑定方式。 在非严格模式下,直接调用函数默认this指向全局对象,即window。这里要注意!即使是在某个 阅读全文
posted @ 2019-10-25 16:51 叫我爱运动小姐 阅读(227) 评论(0) 推荐(0) 编辑

2019年10月12日

摘要: 内存空间 常用数据结构: JS内存空间: 注意:闭包中的变量不存放在栈中,而是存放在堆中!! 变量的存放: QUESTION:为什么会有栈内存和堆内存的区别? 由于垃圾回收机制,为了使程序运行所占用的空间最小。 上面这个问题的结果:a.x值为undefined,b.x的值为{n:2} 重点在 a.x 阅读全文
posted @ 2019-10-12 19:13 叫我爱运动小姐 阅读(299) 评论(0) 推荐(0) 编辑