摘要: this的指向不是在编写时确定的,而是在执行时确定的,同时,this不同的指向在于遵循了一定的规则。 1.默认情况下,指向全局,浏览器的话就是指向window 2.如果函数被调用的位置存在上下文,那么函数被隐式绑定 3.new 指向这个新对象。 4.箭头函数的this指向哪里? 箭头函数的是没有属于 阅读全文
posted @ 2019-09-26 12:39 来亦何哀 阅读(2727) 评论(0) 推荐(0) 编辑
摘要: 1.基本类型传递方式 2.复杂类型按引用传递 3.按共享传递 复杂类型之所以会产生这种特性,原因就是在传递过程中,对象a先产生了一个副本a, 这个副本a并不是深克隆得到的副本a,副本a地址同样指向对象a指向的堆内存. 因此在函数体中修改x=10只是修改了副本a,a对象没有变化. 但是如果修改了x.a 阅读全文
posted @ 2019-09-26 12:37 来亦何哀 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 1.section标签定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。 <section cite="http://www.baidu.com"> 我是<section></section> </section> 2.progress相当于一个进度条,如果不给max和 阅读全文
posted @ 2019-09-26 12:36 来亦何哀 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 1.JavaScript中的变量类型有哪些? (1)值类型(基本类型):字符串(string)、数值(number)、布尔值(boolean)、undefined、null、symbol (2)引用类型:对象(Object)、数组(Array)、函数(Function) 2.值类型和引用类型的区别 阅读全文
posted @ 2019-09-26 12:34 来亦何哀 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 特点 正向代理: 代理客户; 隐藏真实的客户,为客户端收发请求,使真实客户端对服务器不可见; 一个局域网内的所有用户可能被一台服务器做了正向代理,由该台服务器负责 HTTP 请求; 意味着同服务器做通信的是正向代理服务器; 反向代理: 代理服务器; 隐藏了真实的服务器,为服务器收发请求,使真实服务器 阅读全文
posted @ 2019-09-26 12:33 来亦何哀 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 一、new做了什么 1.创建了一个全新的对象。 2.这个对象会被执行[[Prototype]](也就是__proto__)链接。 3.生成的新对象会绑定到函数调用的this。 4.通过new创建的每个对象将最终被[[Prototype]]链接到这个函数的prototype对象上。 5.如果函数没有返 阅读全文
posted @ 2019-09-26 12:31 来亦何哀 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 1.简单版: 局限性: 他无法实现对函数 、RegExp等特殊对象的克隆 会抛弃对象的constructor,所有的构造函数会指向Object 对象有循环引用,会报错 2.面试版: 局限性: 一些特殊情况没有处理: 例如Buffer对象、Promise、Set、Map 另外对于确保没有循环引用的对象 阅读全文
posted @ 2019-09-26 12:29 来亦何哀 阅读(2056) 评论(0) 推荐(0) 编辑
摘要: 1.最经典的跨域方案jsonp jsonp本质上是一个Hack,它利用<script>标签不受同源策略限制的特性进行跨域操作。 jsonp优点: 实现简单 兼容性非常好 jsonp的缺点: 只支持get请求(因为<script>标签只能get) 有安全性问题,容易遭受xss攻击 需要服务端配合jso 阅读全文
posted @ 2019-09-26 12:28 来亦何哀 阅读(2523) 评论(1) 推荐(1) 编辑
摘要: 1.减少请求数量 文件合并 图片合并或base64 避免使用空的src和href 不使用CSS @import 减少重定向 使用缓存 2.减小资源大小 资源压缩 安卓下使用webp格式的图片 开启gzip 3.优化网络连接 使用CDN 使用DNS预解析 <script type="text/java 阅读全文
posted @ 2019-09-26 12:27 来亦何哀 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1.短轮询 短轮询的原理很简单,每隔一段时间客户端就发出一个请求,去获取服务器最新的数据,一定程度上模拟实现了即时通讯。 优点:兼容性强,实现非常简单 缺点:延迟性高,非常消耗请求资源,影响性能 2.comet comet有两种主要实现手段,一种是基于 AJAX 的长轮询(long-polling) 阅读全文
posted @ 2019-09-26 12:25 来亦何哀 阅读(3223) 评论(0) 推荐(2) 编辑
摘要: 浏览器缓存 缓存对于前端性能优化来说是个很重要的点,良好的缓存策略可以降低资源的重复加载提高网页的整体加载速度。 通常浏览器缓存策略分为两种:强缓存和协商缓存。 强缓存 实现强缓存可以通过两种响应头实现:Expires 和 Cache-Control 。强缓存表示在缓存期间不需要请求,state c 阅读全文
posted @ 2019-09-26 12:20 来亦何哀 阅读(168) 评论(0) 推荐(0) 编辑
摘要: <script type="text/javascript"> // 懒加载 // getBoundClientRect 的实现方式 let imgList = [...document.querySelectorAll('img')] let num = imgList.length let lazyLoad = (function (){ let count = 0 return functi 阅读全文
posted @ 2019-09-26 12:19 来亦何哀 阅读(136) 评论(0) 推荐(0) 编辑
摘要: <body> 1. 默认值 <script type="text/javascript"> // bad function test(quantity) { const q = quantity || 1; } // good function test(quantity = 1) { ... } 阅读全文
posted @ 2019-09-26 12:18 来亦何哀 阅读(160) 评论(0) 推荐(0) 编辑
摘要: beforeCreated阶段 initLifecycle(vm) initEvents(vm) initRender(vm) 此时el, data, 以及页面数据为空 created阶段 initInjections(vm) initState(vm) initProvide(vm) 实例化创建完 阅读全文
posted @ 2019-09-26 12:13 来亦何哀 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1. 唯一值 <script type="text/javascript"> // bad // 1. 创建的属性会被 for-in 或 Object.keys() 枚举出来 // 2. 一些库可能在将来会使用同样的方式,这会与你的代码发生冲突 if (element.isMoving) { smo 阅读全文
posted @ 2019-09-26 12:11 来亦何哀 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 1. 数组去重 <script type="text/javascript"> [...new Set(array)] </script> 2. 条件语句的优化 <script type="text/javascript"> // 根据颜色找出对应的水果 // bad function test(c 阅读全文
posted @ 2019-09-26 12:08 来亦何哀 阅读(177) 评论(0) 推荐(0) 编辑
摘要: <div id="item-1">11</div> <div id="item-2">22</div> <script type="text/javascript"> let view = new Proxy({ selected: null, test: null }, { set: functi 阅读全文
posted @ 2019-09-26 12:07 来亦何哀 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 1.从ES7开始,可以使用指数运算符**作为幂的简写,这比编写Math.pow(2, 3) 更快。 例如:2 ** 4 = 16 2.使用加法运算符+快速转为数字,使用~~也可以变为数字,但会不四舍五入的取整 3.位或运算符,可以用于从整数的末尾删除任意数量的数字。 console.log(1553 阅读全文
posted @ 2019-09-26 12:06 来亦何哀 阅读(128) 评论(0) 推荐(0) 编辑
摘要: JavaScript属于静态作用域,即声明的作用域是根据程序正文在编译时就确定的,有时也称为词法作用域。 JavaScript在执行过程中会创造可执行上下文,可执行上下文的词法环境中含有外部词法环境的引用,这样我们就可以通过这个引用 获取外部词法环境的变量、声明等等,这些引用串联起来一直指向全局的词 阅读全文
posted @ 2019-09-26 12:06 来亦何哀 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 1. 遍历范围 for...of 循环可以使用的范围包括: 数组 Set Map 类数组对象,如 arguments 对象、DOM NodeList 对象 Generator 对象 字符串 2. 优势 ES2015 引入了 for..of 循环,它结合了 forEach 的简洁性和中断循环的能力: 阅读全文
posted @ 2019-09-26 12:05 来亦何哀 阅读(761) 评论(0) 推荐(0) 编辑