通过Iterator控制Promise.all的并发数

2019-11-13
阅读 3 分钟
5.8k
异步是 js 一个非常重要的特性,但很多时候,我们不仅仅想让一系列任务并行执行,还想要控制同时执行的并发数,尤其是在针对操作有限资源的异步任务,比如文件句柄,网络端口等等。

使用ES2017 async/await函数的注意点

2017-03-08
阅读 3 分钟
20k
随着node 7.6.0正式实装async/await函数,js的异步编程变的比以往更加容易。但是,在我们全面投入async/await的怀抱之前,有必要对这个特性做一些细致的了解。

【翻译】Next.js背后的哲学和设计

2016-12-16
阅读 4 分钟
9.7k
Naoyuki Kanezawa (@nkzawa), Guillermo Rauch (@rauchg) 和 Tony Kovanen (@tonykovanen)周二,2016年10月25日

React中的“虫洞”——Context

2016-03-18
阅读 2 分钟
15k
当我们写React时,我们总是通过改变State和传递Prop对view进行控制,有时,也会遇到一点小麻烦。 背景 但是随着我们的应用变的越来越复杂,组件嵌套也变的越来越深,有时甚至要从最外层将一个数据一直传递到最里层(比如当前user的信息)。 理论上,通过prop一层层传递下去当然是没问题的。不过这也太麻烦啦,要是能在最...

react如何和server交互

2016-02-15
阅读 2 分钟
9.5k
在一个react应用中,如何通过ajax和server端进行交互这个问题曾经困扰了我一段时间,经过学习实践,有了一点心得体会,写出来和大家分享一下。

选择一个AJAX/HTTP库

2016-02-15
阅读 2 分钟
3.6k
使用JavaScript做开发,始终不能绕不过网络这一关。 目前主要的网络使用场景有以下两大块: AJAX (browser) HTTP client (server) 当然,如果正在开发一个isomorphic/universal应用,你可能需要一个能同时应付browser和server端的东西。 不管怎么样,直接使用XMLHttpRequest是非常繁琐麻烦的,一个更简单的库来帮助我们简...

[翻译] 比较不同Observer模式的实现

2016-01-26
阅读 2 分钟
2.5k
下面的比较只是关于订阅、发布事件以及删除事件监听器的一些基本特性。主要是基于各种基本概念实现上的不同和它们使用上的优缺点,而不是可用的特性。有些被标记为缺点的部分可以通过“好的实现”或则“hack”来避免,但是通常情况下,这些缺点都是存在的。

IE下点击scrollbar会导致焦点移动到body

2016-01-25
阅读 2 分钟
3k
IE这货果然与众不同,当光标焦点在input时,点击同页面内其他区域的scrollbar,会导致焦点移动到body,从而触发绑定在input上的blur事件,如果input中的值与之前不同,甚至还会触发change事件...Chrome曾经也有类似的问题,但在最新版中已经修正了,而Firefox则完全没有这样的问题。

Underscore和Lo-Dash中的Collections _.each

2016-01-25
阅读 3 分钟
2.1k
_.each 遍历集合,对集合中的每个元素执行回调。 API Lo-Dash _.forEach(collection [, callback=identity, thisArg]) Aliases each Arguments collection (Array|Object|String): 要遍历的集合 [callback=identity] (Function): 每次迭代中调用的函数 [thisArg] (任意): 绑定到callback的this callback接受三个参数: (v...

JavaScript中位操作符的特殊作用

2016-01-25
阅读 1 分钟
2.5k
Javascript主要有以下几种位操作符: AND ( & ) OR ( | ) XOR ( ^ ) NOT ( ~ ) LEFT SHIFT ( << ) RIGHT SHIFT ( >> ) ZERO-FILL RIGHT SHIFT ( >>> ) 一般来说,我们在Javascript中很少能用到这些位操作符,但在某些特殊情况下,这些简单的操作符却能抵得上好几行代码(如果不在乎可读性的话...

如何将一个String和多个String值进行比较

2016-01-25
阅读 1 分钟
3.8k
开发中我们经常需要将一个String和多个String值进行比较。直觉反应是使用||符号连接多个===完成,比如: {代码...} 这样能够很好的完成需求,但总觉得有点笨,并且对扩展不友好,当我们的水果种类变多时: {代码...} 上面的代码看起来就不那么好看了,让我们看看有什么其他方式能够处理这种需求。 Switch {代码...} 这看...

JavaScript Throttle & Debounce

2016-01-25
阅读 2 分钟
2k
Throttle 无视一定时间内所有的调用,适合在发生频度比较高的,处理比较重的时候使用。 {代码...} Debounce 一定间隔内没有调用时,才开始执行被调用方法。 {代码...} Test {代码...}

innerText和textContent

2016-01-25
阅读 1 分钟
5k
今天在使用innerText时遇到一个兼容性问题,FireFox不支持innerText方法,查了MDN,发现FireFox下有个类似的方法,叫textContent,它和IE的innerText类似, 都是用来获取(设置)元素中text的方法。

RequireJS学习

2016-01-25
阅读 2 分钟
2.2k
RequireJS是一个JavaScript文件和模块加载器。除了可以在浏览器中使用外,还可以用Node或Rhino等Server端环境。 最新版可以在这里下载。 基本用法 假设你的工程目录结构如下: project index.html js {代码...} 首先,将requirejs.js放入js/lib目录。 project index.html js {代码...} 然后,在index.html中引入<scri...

String Primitive和String Object

2016-01-25
阅读 1 分钟
1.8k
网上看到下面这段代码,很有意思。 {代码...} 这段代码很简单,判断字符串的长度,如果大于给定长度(L)输出,输出字符串前L位加上“…”,否则输出字符串本身。 那么,上面的代码是不是和我们期待的一样输出下面的内容呢? {代码...} 答案是否定的,实际的输出其实是: {代码...} 这其实是因为String对象(String Object)和S...

JavaScript中对空string调用split返回不是空数组

2016-01-25
阅读 1 分钟
4.2k
今天在工作中发现一个诡异的问题,理论上应该是没有元素的数组,长度居然是1。查了半天,原来是Javascript中的split和其他语言中不同,即对空string使用split会返回含有一个空string的数组,而不是一个空数组。

[翻译] JavaScript Scoping and Hoisting

2016-01-21
阅读 5 分钟
10.2k
浏览器会alert“1”。那么,到底是怎么了?尽管这看起来有点奇怪、有点危险又有点令人困惑,但这事实上却是这门语言一个强力的具有表现力的特性。我不知道是不是有个标准来定义这种行为,但是我喜欢用”hoisting”来描述。这篇文章试着去解释这种机制,但是首先,让我们对JavaScript的scoping做一些必要的了解。

JavaScript中的this

2016-01-21
阅读 1 分钟
2.1k
JavaScript有自己的一套this机制,在不同情况下,this的指向也不尽相同。 全局范围 {代码...} 全局范围使用this指向的是全局变量,浏览器环境下就是window。 注:ECMAScript5的strict模式不存在全局变量,这里的this是undefined。 函数调用中 {代码...} 函数调用中的this也指向全局变量。 注:ECMAScript5的strict模式不...