Skip to content

Instantly share code, notes, and snippets.

View jation's full-sized avatar

JationHuang jation

View GitHub Profile
@jation
jation / paat.js
Last active December 14, 2019 15:08
Promise async await tutorial
// Promise, async, await 快速教程
// 包含异步执行顺序控制、异常控制、多异步排序控制
// t1 多异步串行、异常处理
function t1(){
function stepA(){
return new Promise((resolve, reject) => {
setTimeout(()=>{
Math.random() > 0.5 ? resolve('A') : reject('~A~')
}, 300)
@jation
jation / DelayQueue.js
Created December 23, 2018 09:45
a delay queue....
class Task {
constructor(task, taskParam, delay) {
this.task = task; // 传入一个需要被执行的函数
this.taskParam = taskParam; // task的参数,一个或多个参数装载数组里!数组里!数组里!
this.delay = delay || 0;
}
action() {
// ...
typeof this.task === 'function' && this.task.apply(null, this.taskParam);
}
@jation
jation / getUrlParams.js
Last active July 30, 2016 11:30
取URL参数
/*
location.search == '?a=1&b=&c
return {a:'1',b:''}
//注意是字符串……
*/
function getUrlParams() {
var qs = location.search.split("+").join(" ");
var params = {}, tokens, re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
return params;
@jation
jation / levenshtein_distance.js
Last active August 29, 2015 14:17
levenshtein distance; edit distance; 编辑距离
/*
e.g.
levenshteinDistance("aa","a") = 1;
levenshteinDistance("ab","ab") = 1;
levenshteinDistance("a","b") = 1;
*/
var levenshteinDistance = function(s, t) {
var d = []; //2d matrix
// Step 1
@jation
jation / Array.isArray()_for_ECMAScript3.js
Last active December 21, 2015 05:49
兼容ES3和ES5的Array.isArray()方法
if(typeof Array.isArray==="undefined"){
Array.isArray = function(args){
return Object.prototype.toString.call(args) === "[object Array]";
};
}//else{
//p("call default isArray()" + Array.isArray(a))
//}