手撕源码
文章平均质量分 68
尝试看看一些手写题
忘喧
这个作者很懒,什么都没留下…
展开
-
05 数组去重的方法
数组的去重对数组进行去重let arr = [1,3,3] let result = []使用第三方库lodash的_uniq()创建一个去重后的array数组副本。使用了SameValueZero 做等值比较。只有第一次出现的元素才会被保留。result = _uniq(arr)); // [1,3]使用对象的key属性特点对象的obj.key1 = ‘value1’,如果对象obj 中有key1那么就会重新赋值,如果没有key1就会新增一个key1并赋值,再通过Object.keys原创 2021-08-08 13:30:42 · 253 阅读 · 0 评论 -
04 防抖节流实现,问:防抖节流有什么区别
防抖节流函数防抖函数最后一次事件触发的规定时间执行回调函数触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间点击事件防抖多次点击,只执行最后一次触发的事件,利用闭包的特点,在debounce 函数里面,return 一个函数。<script> let btn = document.querySelector('#btn') function debounce(fn, num) { let timeOutId = null原创 2022-01-08 23:58:01 · 368 阅读 · 0 评论 -
03 instanceof关键字
JavaScript 实现 instanceof 关键字instanceof 关键字的用法instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。// 定义构造函数function C(){}function D(){}var o = new C();o instanceof C; // true,因为 Object.getPrototypeOf(o) === C.prototypeo instanceof D; // false,因为原创 2022-01-05 11:31:57 · 198 阅读 · 0 评论 -
02 手写 new 的过程
New 关键字手写一个New 关键字,一个简单的版本function myNew(fn, ...args) { // 创建一个对象 const obj = {} // 修改原型指向 obj.__proto__ = fn.prototype // 调用构造函数,修改this指向新创建的对象 fn.apply(obj, args) // 返回新对象 return obj}另一个比比较全一点的版本function _new(constructor, ...原创 2022-01-05 11:15:22 · 670 阅读 · 0 评论 -
手撕源码 实现原生的AJAX请求
JavaScript Ajax 封装学习之旅在掘金上看了 《 56个JavaScript高级的手写知识点 》(链接在文章底部),里面描述了前端50多个前端手写题,然后想自己也想跟着理解一下。不求完全掌握,但是希望可以打一下基础。开始:对XMLHttpRequest对象不了解,找了相关的文章,然后发现文章的有写了和FetchApi的区别,去看了FetchApi, 设置response Header的时候,有一个Content-type,去看了,返回是img 的时候,用Blod 对象,数据流,Blod 对象原创 2021-11-28 15:29:41 · 274 阅读 · 0 评论 -
手撕源码 Axios的README 文件
axios看了aiost 的readme文件,感觉收获满满!过阵子要再看一遍!InstallingUsing npm:$ npm install axiosUsing bower:$ bower install axiosUsing yarn:$ yarn add axiosUsing jsDelivr CDN:<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script&g原创 2021-11-28 15:26:06 · 303 阅读 · 0 评论