我的30岁

这是我的30岁记录
1994年出生在河南开封的某一个村庄里面,父母和爷爷奶奶都是农民,小时候家里穷,

工作git commit提交规范

git 提交规范

规范的优势

  1. 版本回退可以快速定位到指定版本
  2. 清晰明了知道每次提交的内容
  3. 统一规范

commit 提交格式
commit 提交包括三个部分 Header, BodyFooter;
其中 Header 是必须的, BodyFooter是可忽略。
范例如下:

实现深度克隆/拷贝,解决循环引用

基础版(不能解决循环引用)
基础版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function deepClone(obj){
// 如果参数为空则直接返回,如果为日期/正则 则也直接返回;
if( obj == null ) return obj;
if( obj instanceof Date ) return new Date(obj);
if( obj instanceof RegExp ) return new RegExp(obj);
if(typeof obj !== 'object') return obj;
let cloneObj = new obj.constructor; // 此时是为了获取 obj 的类型, 并且可以根据类型来新建相应的拷贝对象;
// 根据上文的对象类型,来进行填充;
for(let key in obj){
if(obj.hasOwnProperty(key)){ // 过滤掉对象元属性上面的属性;
cloneObj[key] = deepClone(obj[key])
}
}
return cloneObj;
}

函数防抖与节流

在前端开发的过程中,经常会需要绑定一些持续触发的事件,如 resize、scroll、mousemove 等等,但有些时候我们并不希望在事件持续触发的过程中那么频繁地去执行函数。所以诞生了 防抖与节流函数

防抖(debounce)

所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。

|