跳至主要內容
手写 JS 浅拷贝与深拷贝

概述

引用类型的赋值会导致它们的内存地址都指向同一个位置,如下所示:

const obj1 = {
  data: {},
  count: 18
};
const obj2 = obj1;

console.log(obj1 === obj2); // true
console.log(obj1.data === obj2.data); // true

Loclink原创大约 4 分钟手写合集js前端
手写防抖与节流

什么是防抖和节流?

首先需要澄清一个比较常见的误区,那就是防抖和节流在前端开发中并不是特指一个方法,而是应该将其拆分去看待,实质上, 防抖(debounce)节流(throttle) 是两个不同的函数,只不过他们都是优化高频执行代码的一种手段而已,所以通常是一起出现在我们的视野中,导致经常会被我们误认为是一个方法。而它们的使用场景是在监听一些浏览器事件时,例如:resizescrollkeypressmousemove等,这类事件会不断的调用已绑定事件的回调函数,极大的浪费资源,降低了前端性能。为了优化体验,需要对这类事件进行调用次数的限制,为此我们就可以使用 防抖(debounce)节流(throttle) 的方式来减少调用频率。


Loclink原创大约 11 分钟手写合集js前端