09 2019 档案

摘要:this的指向不是在编写时确定的,而是在执行时确定的,同时,this不同的指向在于遵循了一定的规则。 1.默认情况下,指向全局,浏览器的话就是指向window 2.如果函数被调用的位置存在上下文,那么函数被隐式绑定 3.new 指向这个新对象。 4.箭头函数的this指向哪里? 箭头函数的是没有属于 阅读全文
posted @ 2019-09-26 12:39 来亦何哀 阅读(2743) 评论(0) 推荐(0)
摘要:1.基本类型传递方式 2.复杂类型按引用传递 3.按共享传递 复杂类型之所以会产生这种特性,原因就是在传递过程中,对象a先产生了一个副本a, 这个副本a并不是深克隆得到的副本a,副本a地址同样指向对象a指向的堆内存. 因此在函数体中修改x=10只是修改了副本a,a对象没有变化. 但是如果修改了x.a 阅读全文
posted @ 2019-09-26 12:37 来亦何哀 阅读(490) 评论(0) 推荐(0)
摘要:1.section标签定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。 <section cite="http://www.baidu.com"> 我是<section></section> </section> 2.progress相当于一个进度条,如果不给max和 阅读全文
posted @ 2019-09-26 12:36 来亦何哀 阅读(261) 评论(0) 推荐(0)
摘要:1.JavaScript中的变量类型有哪些? (1)值类型(基本类型):字符串(string)、数值(number)、布尔值(boolean)、undefined、null、symbol (2)引用类型:对象(Object)、数组(Array)、函数(Function) 2.值类型和引用类型的区别 阅读全文
posted @ 2019-09-26 12:34 来亦何哀 阅读(289) 评论(0) 推荐(0)
摘要:特点 正向代理: 代理客户; 隐藏真实的客户,为客户端收发请求,使真实客户端对服务器不可见; 一个局域网内的所有用户可能被一台服务器做了正向代理,由该台服务器负责 HTTP 请求; 意味着同服务器做通信的是正向代理服务器; 反向代理: 代理服务器; 隐藏了真实的服务器,为服务器收发请求,使真实服务器 阅读全文
posted @ 2019-09-26 12:33 来亦何哀 阅读(190) 评论(0) 推荐(0)
摘要:一、new做了什么 1.创建了一个全新的对象。 2.这个对象会被执行[[Prototype]](也就是__proto__)链接。 3.生成的新对象会绑定到函数调用的this。 4.通过new创建的每个对象将最终被[[Prototype]]链接到这个函数的prototype对象上。 5.如果函数没有返 阅读全文
posted @ 2019-09-26 12:31 来亦何哀 阅读(768) 评论(0) 推荐(0)
摘要:1.简单版: 局限性: 他无法实现对函数 、RegExp等特殊对象的克隆 会抛弃对象的constructor,所有的构造函数会指向Object 对象有循环引用,会报错 2.面试版: 局限性: 一些特殊情况没有处理: 例如Buffer对象、Promise、Set、Map 另外对于确保没有循环引用的对象 阅读全文
posted @ 2019-09-26 12:29 来亦何哀 阅读(2091) 评论(0) 推荐(0)
摘要:1.最经典的跨域方案jsonp jsonp本质上是一个Hack,它利用<script>标签不受同源策略限制的特性进行跨域操作。 jsonp优点: 实现简单 兼容性非常好 jsonp的缺点: 只支持get请求(因为<script>标签只能get) 有安全性问题,容易遭受xss攻击 需要服务端配合jso 阅读全文
posted @ 2019-09-26 12:28 来亦何哀 阅读(2576) 评论(1) 推荐(1)
摘要:1.减少请求数量 文件合并 图片合并或base64 避免使用空的src和href 不使用CSS @import 减少重定向 使用缓存 2.减小资源大小 资源压缩 安卓下使用webp格式的图片 开启gzip 3.优化网络连接 使用CDN 使用DNS预解析 <script type="text/java 阅读全文
posted @ 2019-09-26 12:27 来亦何哀 阅读(202) 评论(0) 推荐(0)
摘要:1.短轮询 短轮询的原理很简单,每隔一段时间客户端就发出一个请求,去获取服务器最新的数据,一定程度上模拟实现了即时通讯。 优点:兼容性强,实现非常简单 缺点:延迟性高,非常消耗请求资源,影响性能 2.comet comet有两种主要实现手段,一种是基于 AJAX 的长轮询(long-polling) 阅读全文
posted @ 2019-09-26 12:25 来亦何哀 阅读(3273) 评论(0) 推荐(2)
摘要:浏览器缓存 缓存对于前端性能优化来说是个很重要的点,良好的缓存策略可以降低资源的重复加载提高网页的整体加载速度。 通常浏览器缓存策略分为两种:强缓存和协商缓存。 强缓存 实现强缓存可以通过两种响应头实现:Expires 和 Cache-Control 。强缓存表示在缓存期间不需要请求,state c 阅读全文
posted @ 2019-09-26 12:20 来亦何哀 阅读(180) 评论(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 来亦何哀 阅读(143) 评论(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 来亦何哀 阅读(165) 评论(0) 推荐(0)
摘要:beforeCreated阶段 initLifecycle(vm) initEvents(vm) initRender(vm) 此时el, data, 以及页面数据为空 created阶段 initInjections(vm) initState(vm) initProvide(vm) 实例化创建完 阅读全文
posted @ 2019-09-26 12:13 来亦何哀 阅读(169) 评论(0) 推荐(0)
摘要:1. 唯一值 <script type="text/javascript"> // bad // 1. 创建的属性会被 for-in 或 Object.keys() 枚举出来 // 2. 一些库可能在将来会使用同样的方式,这会与你的代码发生冲突 if (element.isMoving) { smo 阅读全文
posted @ 2019-09-26 12:11 来亦何哀 阅读(272) 评论(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 来亦何哀 阅读(182) 评论(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 来亦何哀 阅读(243) 评论(0) 推荐(0)
摘要:1.从ES7开始,可以使用指数运算符**作为幂的简写,这比编写Math.pow(2, 3) 更快。 例如:2 ** 4 = 16 2.使用加法运算符+快速转为数字,使用~~也可以变为数字,但会不四舍五入的取整 3.位或运算符,可以用于从整数的末尾删除任意数量的数字。 console.log(1553 阅读全文
posted @ 2019-09-26 12:06 来亦何哀 阅读(134) 评论(0) 推荐(0)
摘要:JavaScript属于静态作用域,即声明的作用域是根据程序正文在编译时就确定的,有时也称为词法作用域。 JavaScript在执行过程中会创造可执行上下文,可执行上下文的词法环境中含有外部词法环境的引用,这样我们就可以通过这个引用 获取外部词法环境的变量、声明等等,这些引用串联起来一直指向全局的词 阅读全文
posted @ 2019-09-26 12:06 来亦何哀 阅读(104) 评论(0) 推荐(0)
摘要:1. 遍历范围 for...of 循环可以使用的范围包括: 数组 Set Map 类数组对象,如 arguments 对象、DOM NodeList 对象 Generator 对象 字符串 2. 优势 ES2015 引入了 for..of 循环,它结合了 forEach 的简洁性和中断循环的能力: 阅读全文
posted @ 2019-09-26 12:05 来亦何哀 阅读(767) 评论(0) 推荐(0)
摘要:ES6 Module和CommonJS模块的区别: CommonJS是对模块的浅拷贝,ES6 Module是对模块的引用,即ES6 Module只存只读,不能改变其值,具体点就是指针指向不能变,类似const import的接口是read-only(只读状态),不能修改其变量值。 即不能修改其变量的 阅读全文
posted @ 2019-09-26 12:02 来亦何哀 阅读(1696) 评论(0) 推荐(1)
摘要:1.DOM的事件模型是什么? DOM之事件模型分脚本模型、内联模型(同类一个,后者覆盖)、动态绑定(同类多个) 2.DOM的事件流是什么? 事件就是文档或浏览器窗口中发生的一些特定的交互瞬间,而事件流(又叫事件传播)描述的是从页面中接收事件的顺序。 事件冒泡 事件冒泡(event bubbling) 阅读全文
posted @ 2019-09-26 12:01 来亦何哀 阅读(188) 评论(0) 推荐(0)
摘要:当浏览器碰到 script 脚本的时候: <script src="script.js"></script> 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。 <sc 阅读全文
posted @ 2019-09-26 11:59 来亦何哀 阅读(271) 评论(0) 推荐(0)
摘要:浏览器会『从右往左』解析CSS选择器。 我们知道DOM Tree与Style Rules合成为 Render Tree,实际上是需要将Style Rules附着到DOM Tree上, 因此需要根据选择器提供的信息对DOM Tree进行遍历,才能将样式附着到对应的DOM元素上。 以下这段css为例 < 阅读全文
posted @ 2019-09-26 11:58 来亦何哀 阅读(1918) 评论(0) 推荐(0)
摘要:1.响应式系统简述: 任何一个 Vue Component 都有一个与之对应的 Watcher 实例。 Vue 的 data 上的属性会被添加 getter 和 setter 属性。 当 Vue Component render 函数被执行的时候, data 上会被 触碰(touch), 即被读, 阅读全文
posted @ 2019-09-26 11:49 来亦何哀 阅读(1205) 评论(0) 推荐(1)
摘要:1.如果原来安装过vue-cli,需要先卸载,命令:npm uninstall vue-cli -g ;这步如果出现问题,可能是npm 的全局路径被更改, 运行如下命令:npm config set prefix /usr/local 2.安装vue-cli3,npm install -g @vue 阅读全文
posted @ 2019-09-26 11:43 来亦何哀 阅读(5564) 评论(0) 推荐(0)
摘要:上图中的 toPrimitive 就是对象转基本类型。 这里来解析一道题目 [] == ![] // -> true ,下面是这个表达式为何为 true 的步骤 // [] 转成 true,然后取反变成 false [] == false // 根据第 8 条得出 [] == ToNumber(fa 阅读全文
posted @ 2019-09-24 13:31 来亦何哀 阅读(415) 评论(0) 推荐(0)
摘要:translate()是transform的一个值。 改变transform或opacity不会触发浏览器重新布局(reflow)或重绘(repaint),只会触发复合(compositions)(复合是什么,我也不懂,没听说过,有知道的朋友可以在留言区告诉我)。 transform使浏览器为元素创 阅读全文
posted @ 2019-09-09 18:34 来亦何哀 阅读(1290) 评论(1) 推荐(0)