非零环绕规则 发表于 2019-04-27 | 分类于 算法 非零环绕规则是图形学中判断某个区域是在所属区域外面还是内部的一种规则。 简单说一下就是这个样子:对于路径中的任意给定区域,从该区域内部画一条足够长的线段,使此线段的终点完全露在路径范围之外。然后将计数器初始化为0,每当这条线段与路径上的直线或曲线相交时,就改变计数器的值。如果与路径顺时针部分相交的时 ... 阅读全文 »
面试官:考你几个简单的事件问题吧 发表于 2019-04-21 | 分类于 JavaScript 面试官:考你几个简单的事件问题吧。几小时后的你:虽然面试官考的很简单,但是就是没有答上来。 事件处理是JavaScript中非常重要的概念,我们使用的客户端软件往往都是事件驱动的,所以面试官特别喜欢问一些事件相关的知识,这里记录几个常见的问题,供大家学习。 事件流的三个阶段:事件捕获阶段、目标 ... 阅读全文 »
HTTP文件缓存判断流程 发表于 2019-04-20 | 分类于 HTTP 缓存判断流程: 如果Cache-Control(或者Expires,Expires绝对时间,优先级比Cache-Control低)未过期,那么使用缓存,否则按照下一条来判断。 如果有Etag,则会向服务器发送Etag和If-None-Match,由浏览器来判断是200还是304。如果没有Etag ... 阅读全文 »
《现代前端技术解析》读书笔记 发表于 2019-04-20 | 分类于 读书笔记 这本书并没有讲太多的深层次的技术,讲的都是一些原理与思路,非常适合想要从宏观上了解前端的读者。本笔记按照里面的章节记录一些书中有意思的部分。 Web前端技术基础前端开发模式的演变:静态黄页、服务器组装动态网页数据、后端为主的MVC、前后端分离、纯前端MV*为主与中间层直出、前端Virtual D ... 阅读全文 »
bind、call、apply的实现 发表于 2019-04-18 | 分类于 JavaScript bind、call、apply是JavaScript中Function.prototype非常重要的三个方法,他们的作用是改变this的指向。三者的区别是: bind返回一个函数,该函数改变了this的指向。call直接调用函数,也可以传递参数用逗号隔开。apply直接调用函数,也可以传递参数使用 ... 阅读全文 »
generator处理异步操作 发表于 2019-04-14 | 分类于 JavaScript generator是ES6新的语法,我们先简单的回顾一下他的使用: generator基本用法123456789101112function * genFn() { yield 'aaa'; yield 'bbb'; return ' ... 阅读全文 »
JavaScript中的正则表达式 发表于 2019-04-13 | 分类于 JavaScript 正则表达式(Regular Expression)描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串,将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 创建正则对象 语法模拟1var regExp = /\d/gi; new创建1var regExp = new Reg ... 阅读全文 »
《高性能网站建设指南》读书笔记 发表于 2019-04-13 | 分类于 读书笔记 这本书是很久之前买的,今天回顾了一下,顺便记录一下笔记。本书的副标题是“前端工程师技能精髓”可见这本书的牛逼之处。这本书也很薄,只有147页,但是每一章都是精髓。由于这本书每章提出了一个性能优化的方法,我们也就按照每张的具体内容给出吧。 减少HTTP请求 性能黄金法则:只有10%20%的最终用户 ... 阅读全文 »
快速排序 发表于 2019-04-10 | 分类于 算法 快速排序是最效率极高的一种排序方法,正因为它效率高,所以也受到了面试官的青睐,同样成了程序员必会的内容。O(∩_∩)O哈哈~ 它的思想是选一个基准,然后把小于基准的值放在左边,大于基准的值放在右边(假设从小到大排序)。然后分别递归左边和右边的部分,当所有的递归完毕后就是已经排好序的结果了。 市面上流 ... 阅读全文 »