从一道面试题掌握ES6的综合运用(有彩蛋)

2021-01-20
阅读 4 分钟
3.5k
很标准的实现,不是吗,问这里面用到了哪些ES6的特性,可以看出,主要用到了三个,一个是箭头函数=>,一个是块级声明let,一个是常量声明const。

javascript中的reduce,fold和unfold

2019-12-10
阅读 3 分钟
4.9k
好久没有写文章了,这次来谈谈fold和unfold。PS:其实一直也没中断fp的学习,最近学了不少Ramda, Monad, Functor的相关知识,已经开始在项目中运用了,后续会一点点把实战和心得总结出来。

由浅入深学习lodash的debounce函数

2018-06-17
阅读 4 分钟
24.8k
最近的面试中考到了debounce,函数防抖,笔试的时候答的不是特别好,下来好好研究了一下,从原理到优化,再到开源工具库lodash的实现源码,梳理了一番,现整理如下。

正则表达式在日期处理的一个应用

2018-05-13
阅读 3 分钟
2.6k
最近在翻看原来写的工具函数中,发现了formatDate这个工具函数,原来只是在使用,具体的实现原理没有仔细研究过,这次就来分析一下它的实现,了解一下正则表达式的一个实战应用。

js中表达式 >>> 0 浅析

2018-04-26
阅读 2 分钟
16k
当时就很疑惑,知道 >>是移位,那>>>又是什么鬼,还有移位0位又有什么意义呢,带着强烈的好奇心,我就去探究了一下 >>> 0它到底暗藏什么玄机。

clipboard.js代码分析(3)- good-listener

2018-03-06
阅读 5 分钟
2.8k
上一篇文章介绍了clipboard.js这个工具库中的第二个依赖tiny-emitter,这个工具库主要完成了一个简易的事件订阅发布器。这次介绍一下clipboard.js源码中的最后一个依赖的轻型工具库good-listener,这个工具库主要用来对dom的事件绑定进行一层封装,支持事件委托delegate,和jquery的写法非常类似,源码简洁且清晰易懂,...

clipboard.js代码分析(2)-emitter

2018-03-04
阅读 5 分钟
2.7k
上一篇文章介绍了clipboard.js这个工具库中的第一个依赖select这个工具库主要完成了对任意DOM元素的复制到粘贴板的功能。这次介绍一下clipboard.js源码中的第二个依赖的轻型工具库tiny-emitter这个工具库主要用来实现一个简易的基于监听发布者模式的事件派发和接收器,代码经过我的es6改写后只有40行,没有依赖第三方库...

clipboard.js代码分析(1)-select

2017-11-24
阅读 2 分钟
4k
就是点击按钮,复制左侧的内容到剪切板,原来一直用的方法是创建一个隐藏的textarea,把内容填进去,每次都执行select方法,在使用document.execCommand('copy')方法,这次尝试了一下clipboard.js这个库感觉还是非常的好用,还是本着弄懂原理的原则,就读了一下它的实现代码,做一下梳理,首先对它引入的select进行了一...

实现compose的五种思路

2017-10-04
阅读 4 分钟
24.5k
好久没有更新了,最近学习的过程中一直在用联想的思维来去看问题,javascript是一门非常灵活的语言,集合了好多语言的特性和多种编程模式,对于compose的实现,就有非常多的思路,每一种思路都有自己的特点,实现之后,有种殊途同归的快感。下面就是我总结的实现compose函数的五种思路。

ramda.js的compose源码解析

2017-02-25
阅读 5 分钟
5.6k
上一篇文章介绍了javascript中的compose函数的实现,我是用了递归的思想去让函数依次执行,lodash中是用了迭代的思想依次执行函数,但实现了以后我还是觉得有些别扭,仔细想想,我们实现的是一个函数式编程用到的函数,但是实现的方法还是太命令式了,函数还是命令式的执行,通俗点说,还是太把函数当成函数了,在我的理...

关于javascript函数式编程中compose的实现

2017-02-18
阅读 3 分钟
22k
上一篇文章介绍了javascript函数式编程中curry(柯里化)的实现,当然那个柯里化是有限参数的柯里化,等有机会在补上无限参数的那一种柯里化,这次主要说的是javascript函数式编程中另外一个很重要的函数compose,compose函数的作用就是组合函数的,将函数串联起来执行,将多个函数组合起来,一个函数的输出结果是另一个...

一行写出javascript函数式编程中的curry

2017-02-04
阅读 3 分钟
8.2k
最近在学习javascript函数式编程,对其中大名鼎鼎的curry十分感兴趣,curry函数可以接受一个函数,我们暂且称之为原始函数,返回的也是一个函数,柯里化函数,这个返回的柯里化函数功能十分强大,他在执行的过程中,不断的返回一个贮存了传入参数的函数,直到触发了原始函数执行的条件。这么说比较概括,那么就举个例子...