摘要: 1. react实现virtual DOM ,如果要改变页面的内容,还是需要执行DOM操作,比原生操作DOM多了virtualDOM的操作(计算,对比等), 应该是更耗性能??? 2. react特点, a. virtualDOM b. react精髓是函数式编程,易于抽象重复的ui组件 阅读全文
posted @ 2017-03-22 10:05 她在村口等我 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是模块 ? 模块就是能够完成一定工作的函数,对象,甚至是基本的数据类型 var hello = function () { return 'hello'; } 2. 为什么要使用模块 页面加载js文件一般通过script引入,当项目比较复杂时会出现问题 a. 解决命名冲突, 虽然命名空间和 阅读全文
posted @ 2017-03-15 14:31 她在村口等我 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 前一段时间开始了解前端单元测试,前端测试自动化,记录下自己对前端测试的理解,帮助加深印象,和开始了解前端测试的同学。 注: 个人理解可能有所偏差,欢迎指正 下面要讲的内容主要分为以下几点: 1. 什么是单元测试 2. 为什么要进行单元测试 3. 单元测试可以测什么 4. 测试分类 ( TDD, BD 阅读全文
posted @ 2017-03-15 11:14 她在村口等我 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 1. ASCII码和非ASCII码 ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一 阅读全文
posted @ 2017-02-24 17:24 她在村口等我 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 以斐波那契数列为例 1, 1, 2, 3, 5, 8 。。。。。 function fb ( n ) { if (n<=0) {return 1}; return fb(n-1) + fb(n-2) } 优化后的尾递归 function fb(n , ac1=1, ac2 = 1) { if ( n 阅读全文
posted @ 2017-02-15 17:08 她在村口等我 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 例如 : 将函数的 arguments参数转成数组格式 es5: [].slice.call(arguments) Array.prototype.slice.call(arguments) es6: Array.from(arguments) 能将具有 Iterator接口的数据格式(Set, M 阅读全文
posted @ 2017-02-15 15:52 她在村口等我 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 1. 输入url+回车,或者点击a标签 ( 此url近期访问过,没有超出缓存时间 ) 如果有缓存,浏览器直接读取缓存的数据,不会发送请求到服务器 可以看到 Cache-Control max-age设置的数值 2. F5刷新 如果有缓存,浏览器会向服务器发出一条请求,验证缓存的新鲜度(根据 If-M 阅读全文
posted @ 2017-02-14 11:03 她在村口等我 阅读(880) 评论(0) 推荐(0) 编辑
摘要: 浏览器加载资源成功一般会有几种状态 200 ok 从原始服务器请求成功 200 ok from cache 200 ok from disk cache 200 ok from memory cache 304 not modified 向服务器发送请求,验证新鲜度,足够新鲜,服务器会返回 304状 阅读全文
posted @ 2017-02-14 10:50 她在村口等我 阅读(7639) 评论(0) 推荐(1) 编辑
摘要: 场景: 用浏览器打开一个本地服务的网页时,有时候能正常打开,有时候会报 Provisional headers are shown 。 内网下有些电脑能登录,有些则不能, 用 chrome://net-internal 捕获请求事件,事件信息如下 chrome搜索下,总结大体如下: 1. 浏览器缓存 阅读全文
posted @ 2017-02-08 14:49 她在村口等我 阅读(433) 评论(0) 推荐(0) 编辑