摘要: 一个是reducer, 另一个是middlewares reducer 和 reduce reducer可以说是redux的精髓所在。我们先来看下它。reducer被要求是一个纯函数。 被要求很关键,因为reducer并不是定义在redux中的一个东西。而是用户传进来的一个方法。 纯函数也很关键,r 阅读全文
posted @ 2019-10-25 18:02 单先生 阅读(479) 评论(0) 推荐(0) 编辑
摘要: let onWatch(obj, setBind, getLogger) => { let handler = { get(target, property, receiver) { getLogger(target, property); }, set(target, property, value, receiv... 阅读全文
posted @ 2019-10-25 17:49 单先生 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 首先,严格模式通过抛出错误来消除一些原有的静默错误。 其次,严格模式修复了一些导致JavaScript引擎难以执行优化的缺陷:有时候,相同的代码,严格模式可以比非严格模式下运行的更快。 第三,严格模式禁用了在ECMAScript的未来版本中可能会定义的一些语法。 阅读全文
posted @ 2019-09-29 16:25 单先生 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 线程 线程是操作系统能够进行运算调度的最小单位,首先我们要清楚线程是隶属于进程的,被包含于进程之中。一个线程只能隶属于一个进程,但是一个进程是可以拥有多个线程的。 单线程 单线程就是一个进程只开一个线程 Javascript 就是属于单线程,程序顺序执行(这里暂且不提JS异步),可以想象一下队列,前 阅读全文
posted @ 2019-09-25 15:13 单先生 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 第二个版本: 现在有两个新的问题摆在我们面前 这个状态管理器只能管理 count,不通用 公共的代码要封装起来我们尝试来解决这个问题,把公共的代码封装起来 // 第二个版本redux // createStore,提供了 changeState,getState,subscribe 三个能力。 co 阅读全文
posted @ 2019-09-25 11:22 单先生 阅读(344) 评论(1) 推荐(0) 编辑
摘要: let deepTraversal1 = (node, nodeList = []) => { if (node !== null) { nodeList.push(node); let children = node.children; for (let i = 0; i < children.length; i++) { deepTraversal1(... 阅读全文
posted @ 2019-09-23 19:03 单先生 阅读(185) 评论(0) 推荐(0) 编辑
摘要: let memoize = function(fn,resolver){ console.log('resolver:', resolver); let cache = {}; return function(...args){ let key = typeof resolver 'function' ? resolver.apply(this,args) :JSON.stringify(args 阅读全文
posted @ 2019-09-23 09:01 单先生 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 前端基础进阶目录 前端基础进阶(一):内存空间详细图解 前端基础进阶(二):执行上下文详细图解 前端基础进阶(三):变量对象详解 前端基础进阶(四):详细图解作用域链与闭包 前端基础进阶(五):全方位解读this 前端基础进阶(六):在chrome开发者工具中观察函数调用栈、作用域链与闭包 前端基础 阅读全文
posted @ 2018-01-05 16:33 单先生 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 这次读了一些关于底层实现的东西: 《深浅》第3章 异步I/O - node.js是如何实现异步i/o的 Udemy 《Learn and Understand NodeJS Learn and Understand NodeJS》 Section 2&3 V8引擎 首先,学习node.js一定要了解 阅读全文
posted @ 2018-01-04 14:23 单先生 阅读(1507) 评论(0) 推荐(1) 编辑
摘要: 1、重置当前正在编辑的工作空间到服务器状态(未提交) git reset --hard HEAD 2、重置当前编辑空间的部分文件到服务器状态(未提交) git checkout WebReport/通讯录.xls 3、重置提交了但是没有push的commit(已提交) git relog 找到对应的版本ID git reset --hard c11ac3a4fc6718890064464... 阅读全文
posted @ 2018-01-04 11:54 单先生 阅读(284) 评论(0) 推荐(0) 编辑