ES6 之 Proxy

Proxy,代理,是ES6新增的功能,可以理解为代理器(即由它代理某些操作)。 Proxy 对象用于定义或修改某些操作的自定义行为,可以在外界对目标对象进行访问前,对外界的访问进行改写。 1. Proxy 定义 var proxy = new Proxy(target, handler) new...

2019-02-14 14:32:30

阅读数 25

评论数 0

探讨requestAnimationFrame

在JS中,我们可以使用 setTimeout 和 setIntarval 实现动画,但是 H5 的出现,让我们又多了两种实现动画的方式,分别是 CSS 动画(transition、animation)和 H5的canvas 实现。除此以外,H5还提供了一个专门用于请求动画的API,让 DOM 动画...

2019-02-13 15:12:28

阅读数 28

评论数 0

JS异步解决方案的发展历程以及优缺点

JS 异步已经告一段落了,这里来一波小总结 1. 回调函数(callback) setTimeout(() => { // callback 函数体 }, 1000) 缺点:回调地狱,不能用 try catch 捕获错误,不能 return 回调地狱的根本问题在于:...

2019-02-13 11:12:53

阅读数 202

评论数 0

数组扁平化、去重、排序

看一道面试题: 已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]; 编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组 答案...

2019-02-12 09:37:49

阅读数 71

评论数 0

JS 基础之异步(六):co 函数库

co 函数库是 TJ 大神基于ES6 generator 的异步解决方案。要理解 co ,你必须首先理解 ES6 generator,可以看我之前的文章JS 基础之异步(五):Generator,这里不在赘述。 co 现在已经不怎么使用了,一些老版本的库里可能使用它,我是在看 koa 源码的时候...

2019-02-12 08:54:06

阅读数 133

评论数 0

深入 setState 机制

React 是通过管理状态来实现对组件的管理,即使用 this.state 获取 state,通过 this.setState() 来更新 state,当使用 this.setState() 时,React 会调用 render 方法来重新渲染 UI。 首先看一个例子: class Example...

2019-02-11 14:23:06

阅读数 121

评论数 0

深度优先遍历与广度优先遍历

图 图是一种复杂的非线性结构,它由边(边Edge)和点(顶点Vertex)组成。一条边连接的两个点称为相邻顶点。 G = (V, E) 图分为: 有向图 无向图 本文探讨的是无向图 图的表示 图的表示一般有以下两种: 邻接矩阵:使用二维数组来表示点与点之间是否有边,如 arr[i][j] ...

2019-02-05 19:14:33

阅读数 67

评论数 0

Set、WeakSet、Map及WeakMap

Set 和 Map 主要的应用场景在于 数据重组 和 数据储存 Set 是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构 1. 集合(Set) ES6 新增的一种新的数据结构,类似于数组,但成员是唯一且无序的,没有重复的值。 Set 本身是一种构造函数,用来生成 Set 数据结构...

2019-02-03 22:53:10

阅读数 39

评论数 0

JS 基础之异步(五):Generator

接着上一部分继续了解JS 基础之异步(四):Generator(生成器、迭代器源码实现) Generator函数 function *会定义一个生成器函数,并返回一个Generator(生成器)对象,其内部可以通过 yield 暂停代码,通过调用 next 恢复执行。 调用一个生成器对象并不...

2019-02-01 17:33:07

阅读数 64

评论数 0

深入diff 算法

深入diff 算法 diff 作为 Virtual DOM 的加速器,其算法上的改进优化是React页面渲染的基础和性能保障,本节从源码入手,深入剖析diff算法。 React 中醉值得称道的莫过于Virtual DOM与diff的完美结合,尤其是其高效的diff算法,可以帮助我们在页面蔌渲染...

2019-02-01 15:33:17

阅读数 185

评论数 0

setTimeout、Promise、Async/Await

一道面试题引发的血案,下面进入主题: // 今日头条面试题 async function async1() { console.log('async1 start') await async2() console.log('async1 end') } asy...

2019-01-31 16:48:30

阅读数 557

评论数 0

JS 基础之异步(四):Generator(生成器、迭代器源码实现)

Step3:Generator Generator 是什么 **生成器(Generator)**对象是ES6中新增的语法,和Promise一样,都可以用来异步编程。但与Promise不同的是,它不是使用JS现有能力按照一定标准制定出来的,而是一种新型底层操作,async/await就是在它的基...

2019-01-24 17:16:14

阅读数 52

评论数 0

['1', '2', '3'].map(parseInt) what & why ?

这是今天在 Advanced-Frontend组织 看到一个比较有意思的题目。 主要是讲JS的映射与解析 早在 2013年, 加里·伯恩哈德就在微博上发布了以下代码段: ['10','10','10','10','10'].map(parseInt); // [10, NaN, 2, 3, 4] ...

2019-01-22 10:15:20

阅读数 50

评论数 0

Taro 小程序总结

最近,工作加班写小程序,虽然之前也写了不少小程序,但大多是使用小程序原生来写,也使用过wepy框架,风格和vue差不多,这次尝试使用taro框架。今天小程序告一断落,特此总结一波。 1. 安装使用Taro 安装 npm install -g @tarojs/cli 使用命令...

2019-01-21 17:47:46

阅读数 272

评论数 0

Taro 小程序拖拽排序

具体效果如下: 详细可见 喵呜会团长助手 小程序,

2019-01-21 16:38:36

阅读数 167

评论数 0

Taro 对接腾讯云对象存储服务COS

Taro 是一套遵循 React 语法规范的 多端开发 解决方案,所以一开始打算使用cos-js-sdk-v5,结果发现一直userAgent报错,代理出错,查看源码cos-js-sdk-v5/lib/request.js,才发现了自己忽略了一个致命错误。 cos-js-sdk-v5使用的是jqu...

2019-01-21 15:41:18

阅读数 173

评论数 2

Taro 阻止事件冒泡

在 Taro 中另一个不同是你不能使用 catchEvent 的方式阻止事件冒泡。你必须明确的使用 stopPropagation。例如,阻止事件冒泡你可以这样写: class Toggle extends Component { constructor (props) { super...

2019-01-21 15:06:00

阅读数 450

评论数 0

Taro event handler 传递参数有问题

如果,你在开发过程中,发现event handler 传递参数有问题,例如:代码里使用onClick={this.handleClick.bind(this, 1)}的方式绑定事件处理程序,并且传递值,其定义是 // 方法 handleClick (params , e) { consol...

2019-01-21 15:02:12

阅读数 236

评论数 0

JS 基础之异步(三):Promise源码实现

Step2:Promise Promise就是为了解决callback的问题而产生的。 Promise 本质上就是一个绑定了回调的对象,而不是将回调传回函数内部。 开门见山,Promise解决的是回调函数处理异步的第2个问题:控制反转。 我们把上面那个多层回调嵌套的例子用Promise的方...

2018-12-28 18:07:35

阅读数 61

评论数 0

JS 基础之异步(二):callback

step1:callback asyncFunction(function(value) { // todo }) 这种回调函数,大家是最熟悉的。一般是需要在某个耗时操作之后执行某个回调函数。 例如: setTimeout(function() { console...

2018-12-28 18:06:52

阅读数 103

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭