Skip to content

Instantly share code, notes, and snippets.

View LeeeeeeM's full-sized avatar
🎯
专心研究webpack的细节。

EMpersonal LeeeeeeM

🎯
专心研究webpack的细节。
View GitHub Profile
@LeeeeeeM
LeeeeeeM / promise.js
Last active August 31, 2021 01:21
实现一个Promise
// 实现一个promise 拥有then方法
function noop() {
}
function resolve(promise) {
return function(value) {
if (promise._status !== 'pending') {
return; // 如果是fullfilled或者rejected,不可逆
}
@LeeeeeeM
LeeeeeeM / compose.js
Last active December 13, 2019 08:52
compose 函数组合
// 原始方法
function compose(...fns) {
return function composed(result) {
var list = fns.slice();
while(list.length > 0) {
result = list.pop()(result);
}
return result;
}
}
@LeeeeeeM
LeeeeeeM / express.js
Created May 9, 2018 02:16
中间件实现express
function express() {
var middlewares = [];
var app = function(req, res) {
var i = 0;
function next() {
var task = middlewares[i++];
if (!task) {
return;
@LeeeeeeM
LeeeeeeM / Event.js
Last active May 22, 2019 11:20
Event实现trigger、on、off、once
function Event() {
this.fnMap = {};
}
Event.prototype.on = function(type, fn) {
var fns = this.fnMap[type] || (this.fnMap[type] = [])
fns.push(fn);
return this;
};
@LeeeeeeM
LeeeeeeM / mergeSort.js
Last active April 10, 2019 01:26
归并排序
functino mergeSort(array) {
if (array.length === 1) {
return array;
}
var middle = Math.floor(array.length / 2);
var leftArray = array.slice(0, middle);
var rightArray = array.slice(middle);
return merge(mergeSort(leftArray), mergeSort(rightArray));
}
@LeeeeeeM
LeeeeeeM / git-tag-delete-local-and-remote.sh
Created January 29, 2019 01:52 — forked from mobilemind/git-tag-delete-local-and-remote.sh
how to delete a git tag locally and remote
# delete local tag '12345'
git tag -d 12345
# delete remote tag '12345' (eg, GitHub version too)
git push origin :refs/tags/12345
# alternative approach
git push --delete origin tagName
git tag -d tagName
@LeeeeeeM
LeeeeeeM / dataAttr.js
Created November 21, 2018 09:38
data-set正则测试表达
function $dataAttr (nameWithData) {
const originAttr = nameWithData.replace(/[A-Z]/g, $0 => '-' + $0.toLowerCase())
return originAttr.replace(/^data-/, '').replace(/-([a-z])/g, ($0, $1) => $1.toUpperCase())
}
// nameWithData ----> dataSetName
// originAttr ----> data-set-name
// return ----> setName
@LeeeeeeM
LeeeeeeM / reqPraGetSeq.js
Last active August 2, 2018 02:11
request同时加载但是依次返回结果
var timeout = (time, value) => {
console.log('step into promise', time, value);
return new Promise(resolve => {
setTimeout(resolve, time, value);
});
};
var queue = [2, 3, 5, 99, 1];
var dosth = value => {
@LeeeeeeM
LeeeeeeM / m.js
Created June 20, 2018 02:09
Map && WeakMap
// Map 是 构造函数是 var a = new Map([ [key1, value1], [key2, value2] ])
// key1只要与key2不是同一个引用就不会覆盖。 key1 与key2 可以是任何类型。
// WeakMap 不会进入到垃圾回收机制,当key值清空会自动回收,不进入垃圾回收(垃圾回收里面只要存在引用就不可以被回收,这样可以防止内存泄漏)
@LeeeeeeM
LeeeeeeM / git-branch.md
Created June 6, 2018 08:58 — forked from yisibl/git-branch.md
在Mac、Linux 终端显示 Git 当前所在分支

在Mac、Linux 终端显示 Git 当前所在分支

  1. 进入你的home目录
cd ~
  1. 编辑.bashrc文件