Lucifier129.github.io
Lucifier129.github.io copied to clipboard
Lucifier129.github.io
## 前言 今天看 `Mozilla` 出品的 [ES6 In Depth](https://hacks.mozilla.org/category/es6-in-depth/) ,看到 [Arrow functions](https://hacks.mozilla.org/2015/06/es6-in-depth-arrow-functions/)([中文翻译](http://bubkoo.com/2015/06/28/es6-in-depth-arrow-functions/)),其中一段让人讶异。 > Using arrows to pierce the dark heart of computer science > > 「使用箭头来刺穿计算机的黑暗心脏」 里面提到λ (lambda)表达式、阿隆佐·邱奇(Alonzo Church)、阿兰·图灵(Alan Turing),这些耳熟能详的名词原来与我们写 JavaScript...
`作者`: 工业聚 `日期`:2015-06-12 ## 前言 近日,Mac 下著名软件 Homebrew 的作者,因为没解出来二叉树翻转的白板算法题,惨遭 Google 拒绝,继而引发推特热议。 在 JavaScript 中也有很多树形结构。比如 DOM 树,省市区地址联动,文件目录等; JSON 本身就是树形结构。 很多前端面试题也跟树形结构的有关,比如在浏览器端写遍历 DOM 树的函数,比如在 nodejs 运行时遍历文件目录等。 这里演示用 JavaScript 遍历树形结构的几种策略。 ## 场景1:遍历 DOM 树...
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 0.13.3 to 16.13.1. Release notes Sourced from react's releases. 16.13.1 (March 19, 2020) React DOM Fix bug in legacy mode Suspense where effect clean-up functions are not...
# IMVC(同构 MVC)的前端实践 ## 导语 随着 Backbone 等老牌框架的逐渐衰退,前端 MVC 发展缓慢,有逐渐被 MVVM/Flux 所取代的趋势。 然而,纵观近几年的发展,可以发现一点,React/Vue 和 Redux/Vuex 是分别在 MVC 中的 View 层和 Model 层做了进一步发展。如果 MVC 中的 Controller 层也推进一步,将得到一种升级版的 MVC,我们称之为 IMVC(同构 MVC)。 IMVC...
在 haskell 里,function 本身也是 functor, applicative, monad 和 monoid。 ## 理念 function 是天然的 container。 ```haskell - b 是 test 函数包含的 value, test a 函数调用是获取 container 内部 value 的方式 test ::...
# 如何写一个你自己的jQuery库? ## 前言 本文面向的读者群如下: > - 前端交互重度依赖jQuery库 > - 具备一定的原生js基础知识 > - 开始阅读某一版本的jQuery源码 本文采用的写作与编码手法如下: > - 以标准实现为主,不考虑兼容性 > - 函数实现以新手直觉式为主,而非jQuery源码中经过千锤百炼的版本 > - 粗略搭建类jQuery式骨架,最终产物不以投入生产为目的,仅供参考 > - 用最终实现的库,实现一个在现代浏览器中正常工作的轮播图效果 注意:代码大致仿照`jQuery`,不代表跟它的内部实现以及api用法完全一样。 全部代码打包:猛击这里 轮播图实现DEMO:猛击这里...
# 算法的两种心智模型:代数与几何 人类发展了两类反映世界的心智模型:语言和代数 vs 视觉和几何。分别对应「语义化」和「可视化」。 几乎所有人都具备使用和表达它们的能力。但不同的人对它们的依仗程度不同,甚至同一个人面对不同的问题时所采用的心智模型也可能不同。 下面的 `merge sort` 小测验,考量你对算法问题的处理方式是「代数型」、「几何型」还是「综合型」。 鉴定方式是,在看完对 `merge sort` 的两种类型的解读之后,自行体悟,报告出当你从头实现 `merge sort` 时,你倾向于用哪一种心智模型作为想象图景。 ## 静态几何型 ## 动态几何型 [merge sort visualizer](http://algo-visualizer.jasonpark.me/#path=sorting/merge/bottom_up) 点击链接,等待加载完成后,点击右上角导航条里的 `run` 按钮观看。 ## 递归代数型 ```...
## 前言 [redux](https://github.com/rackt/redux) 是 facebook 提出的 flux 架构的一种优秀实现;而且不局限于为 react 提供数据状态处理。它是零依赖的,可以配合其他任何框架或者类库一起使用。要想配合 react ,还得引入 [react-redux](https://github.com/rackt/react-redux)。 redux 团队的野心比较大,并不想让 redux 局限于 react 生态链中的一环。他们让 redux 自身保持简洁以便适配各种场景,让社区发展出各种 `redux-*` 中间件或者插件,从而形成它自己的生态系统。 redux 的核心很简洁。这篇文章将专注于解读 redux 核心的设计思路,以 [Isomorphism-react-todomvc](https://github.com/Lucifier129/Isomorphism-react-todomvc) 这个项目为示例。它很可能是目前实现最完备的 react/redux...
## 前言 工具:Babel 在线编译:https://babeljs.io/repl/ ## 好用的对象字面量与进阶 「一切都是对象」是简洁概念,但是像下面这样创建实例太辛苦。 ``` javascript var person = new Object() person.firstName = 'Jade' person.lastName = 'Gu' person.name = 'Jade Gu' ``` 我们想要更直观的方式,如: ``` javascript var person...
理解正则表达式
# 理解正则表达式 在我初学正则表达式的时候,走了一些弯路,强行记忆了很多符号和用法。 等到我有更深入的理解的时候我发现,从翻译和概念的角度上切入,学习起来会顺畅得多。 本文以`JavaScript`里的正则表达式为例,讲解其中的关键要素。希望能帮助到初学者。 注:也只限于阐述关键要素,不会事无巨细地展开。 ## 何为正则表达式? 在中文语境里,「正则」两个字有点让人发怵,仿佛高深数学或物理中的「正则化」和「归一化」,抽象而难懂。 其实放到英文里,它是`regular expression`,而`regular`有「规律、规范、整齐、合格、正规」等意味,「正则」只是其中一种翻译。 不把它翻译成一个词组,而翻译成一句话,大致是:表达规范和规则的句子。 这里的规范和规则,指的是一个字符串的形式规则。 至于`JavaScript`里的 `RegExp` 构造函数,是`Regular Expression`的前三个字母缩写。 ## 正则表达式的格式 在`JavaScript`里,正则表达式有两个构造方式,一个是通过`RegExp`这个构造函数创建实例,另一个是正则表达式字面量写法。 ``` javascript var regexp1 = new RegExp('hello regular expression') var...