来自分类 JavaScript2020-10-27 11:07:16
相当于 $(el).before('html' | element)
```javascript
el.insertAdjacentHTML('beforeBegin', 'html');
el.insertAdjacentElement('beforebegin', element)
```
相当于 $(el).prepend('html' | element)
```javascript
el.insertAdjacentHTML('afterBegin', 'html');
el.insertBefore(element, el.firstChild)
```
相当于 $(el).append('html' | element)
```javascript
el.insertAdjacentHTML('beforeEnd', 'html');
el.appendChild(element)
```
相当于 $(el).after('html' | element)
```javascript
el.insertAdjacentHTML('afterEnd', 'html')...
来自分类 JavaScript2017-09-28 17:15:03
```javascript
var array = [[4,'dasd'],[5,'dasd'],[1,'dasd'],[2,'dasd'],[3,'dasd'],[13,'dasd'],[23,'dasd']]
var newarray = []
array.map(i => {
let index = newarray.findIndex((j) => j[0] > i[0])
index === -1 ? newarray.push(i) : newarray.splice(index, 0, i)
});
console.log(newarray)
```...
来自分类 JavaScript2016-12-07 22:12:00
# compose
创建一个包括一组异步函数的函数集合,每个函数会消费上一次函数的返回值。
```javascript
function fn1(n,callback){
log('1.1.f enter: ',n);
setTimeout(function () {
callback(null, n + 1);
}, 10);
}
function fn2(n, callback) {
log('1.1.g enter: ',n);
setTimeout(function () {
callback(null, n * 2);
}, 10);
}
function fn3(n, callback) {
log('1.1.h enter: ',n);
setTimeout(function () {
callback(null, n - 10);
}, 10);
}
var fn = async.compose(fn1, fn2, fn3);
fn(4, funct...
来自分类 JavaScript2016-12-07 22:12:00
```javascript
var arr = [1,2,3,6];
```
# every
async.every(coll, iteratee, [callback])
如果集合里每一个元素都满足条件,则传给最终回调的result为true,否则为false
```javascript
async.every(arr, function(item, callback){
log('1.1 enter: ',item);
setTimeout(function(){
log('1.1 handle: ',item);
callback(null, item<=10);
},100);
}, function(result) {
log('1.1 result: ', result);
});
// 32.233> 1.1 result: true
```
# everySeries
async.everySeries(coll, iteratee, callback)
串行
# everyLimit
async...
来自分类 JavaScript2016-12-07 22:12:00
```javascript
var arr = [{
name:'Jack', delay:200
}, {
name:'Mike', delay: 100
}, {
name:'Freewind', delay:300
}, {
name:'Test', delay: 50
}];
```
# map
async.map(coll, iteratee, [callback])
对集合中的每一个元素,执行某个异步操作,得到结果。所有的结果将汇总到最终的callback里
- 并行执行。同时对集合中所有元素进行操作,结果汇总到最终callback里。如果出错,则立刻返回错误以及已经执行完的任务的结果,未执行完的占个空位
- 顺序执行。对集合中的元素一个一个执行操作,结果汇总到最终callback里。如果出错,则立刻返回错误以及已经执行完的结果,未执行的被忽略。
##### 并行
```javascript
async.map(arr, function(item, callback) {
log('1.1 enter: ' + item...
来自分类 JavaScript2016-12-07 22:12:00
# auto
async.auto(tasks, [callback])
auto用来处理有依赖关系的多个任务的执行
如果中途出错,则会把错误交给最终callback,执行完任务的传给最终callback。未执行完成的函数值被忽略
```javascript
async.auto({
getData: function (callback) {
setTimeout(function(){
console.log('1.1: got data');
callback(null, 'mydata');
}, 300);
},
makeFolder: function (callback) {
setTimeout(function(){
console.log('1.1: made folder');
callback(null, 'myfolder');
}, 200);
},
wr...
来自分类 JavaScript2016-12-07 22:12:00
```javascript
var data = {
aaa: [11,22,33],
bbb: [44,55],
ccc: 66
};
var keys = [
{name: 'aaa', delay: 300},
{name: 'bbb', delay: 100},
{name: 'ccc', delay: 200}
];
```
# concat
async.concat(coll, iteratee, [callback])
将多个异步操作的结果合并为一个数组。
以并行方式对集合中各元素进行异步操作,然后把得到的结果合并为一个数组,传给最后的callback。
如果中途出错,则把错误以及已经完成的操作的结果交给最后callback。未执行完的则忽略。
```javascript
async.concat(keys, function(key,callback) {
setTimeout(function() {
callback(null, data[key.name]);
}, key.d...
来自分类 JavaScript2016-12-07 22:12:00
很多时候, 我们需要用到jQuery, 但是我们又不需要jQuery所有功能, 为了一部分功能而引入一个完整的jQuery库, 实在是有点浪费, 特别是在移动端, 那么我们该怎么来精简掉一些我们不需要的功能呢?
准备工作, 安装 `nodejs` 和 `git`, 安装教程网上一搜一大把, 这里不再重复.
#### 1. 克隆jquery仓库
`git clone git://github.com/jquery/jquery.git`
jQuery的仓库有点大, 网络不太好的, 建议挂VPN
#### 2. 安装grunt
`npm install -g grunt-cli`
网络不太好的, 可以用cnpm安装
#### 3. 安装jQuery仓库的相关依赖
`cd jquery && npm install`
网络不太好的, 可以用cnpm安装
#### 4. 可以精简那些模块?
jquery的api文档: http://www.css88.com/jqapi-1.9/, 可以对比着精简
以下是可以精简的模块列表:
```
ajax
css
css/showHide
dep...
来自分类 JavaScript2016-12-07 22:12:00
```javascript
var arr = [{
name: 'Jack',
delay: 200
}, {
name: 'Mike',
delay: 100
}, {
name: 'Freewind',
delay: 300
}];
```
# each
async.each(coll, iterate, [callback])
所有操作并发执行,且全部未出错,最终得到的err为undefined。注意最终callback只有一个参数err。
如果中途出错,则出错后马上调用最终的callback。其它未执行完的任务继续执行
```javascript
async.each(arr, (item, callback) => {
setTimeout(() => {
console.log(item.name);
callback(null, item.name);
}, item.delay);
}, (err) => console.log(err));
```
# eachS...
来自分类 JavaScript2016-12-07 22:12:00
# whilst
whilst(test, fn, callback)
中途出错。出错后立刻调用第三个函数。
```javascript
var count = 0;
async.whilst(
function () { return count < 5; },
function (callback) {
count++;
setTimeout(function () {
callback(null, count);
}, 1000);
},
function (err, n) {
// 5 seconds have passed, n = 5
}
);
```
# doWhilst
doWhilst(fn, test, callback)
doWhilst交换了fn,test的参数位置,先执行一次循环,再做test判断。 和javascript中do..while语法一致。
```javascript
var count4 = 0;
async...