Skip to content

Instantly share code, notes, and snippets.

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

EMpersonal LeeeeeeM

🎯
专心研究webpack的细节。
View GitHub Profile
@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 / 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文件
@LeeeeeeM
LeeeeeeM / es7.bind.js
Created June 4, 2018 11:59
this::fn(arguments)为什么使用es7的::操作符
使用::和es5的bind&&call&&apply的区别。
使用call bind apply 不是一种面向oo的编程方式,所以会导致什么问题呢? 无法链式调用,这就很蛋疼了。
所以::操作符的一部分作用就是可以面向oo编程,可以链式调用。
example
fn2.bind(fn1.bind(this, a1)(argu1))(argu2) 恶心不?很恶心
this::fn1(argu1)::fn2(argu2) OK,链式调用。
@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 / addEvent.js
Created April 16, 2018 08:21
添加事件
function addListener(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
return handler;
} else if (element.attachEvent) {
var wrapper = function() {
var event = window.event;
event.target = event.srcElement;
handler.call(element, event);
}
@LeeeeeeM
LeeeeeeM / deepClone.js
Created April 16, 2018 08:14
深拷贝
function deepClone(obj) {
var o = obj instanceof Array ? [] : {};
for (var name in obj) {
o[name] = typeof obj[name] === 'object' ? deepClone(obj[name]) : obj[name];
}
return o;
}
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], factory);
} else if (typeof exports === 'object') {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory();
} else {