- 博客(33)
- 收藏
- 关注
原创 【3.31】数组去重最终版本(考虑key乱序的对象以及数组和对象复杂嵌套关系)
【代码】【3.31】数组去重最终版本(考虑key乱序的对象以及数组和对象复杂嵌套关系)
2023-03-31 21:31:17
145
原创 【3.28】React零碎知识汇总
在React类组件里,可以省略super,但如果用了super(),在super()和构造函数结束之前this.props()依然是undefined,因为在React会在。在React 中,类组件只要执行了 setState 方法,就一定会触发 render 函数执行,函数组件使用useState更改状态不一定导致重新render。– 在setTimeout,原生事件里是同步更新(React 18前),生命周期或者React合成事件里是异步。阻止合成事件间的冒泡,用e.stoppropagation()
2023-03-28 21:30:33
195
原创 【3.15】阿里钉钉前端一面 复盘
判断,是否有Etag,有的话带If-None-Match向服务器发请求,如果没有Etag那就会判断是否有Last-Modified,有的话带If-Modefied-Since向服务器请求,服务器接收请求之后判断是否有更新,有的话就返回更新的,没有的话直接返回304,让浏览器读取缓存即可。,useMemo是缓存了一个值(或者对象啥的),页面重新加载时,本来按道理对象会重新生成,组件如果使用这个对象作props,会重新渲染,useMemo避免了这种不必要的重渲染,节省开销。
2023-03-23 22:19:06
201
原创 【React扩展】 React 18 新特性
想来想去 还是要好好补习一下React掘金搬运点文章5.13参考 https://juejin.cn/post/7094037148088664078发行时间 2022.3React 18 放弃了对ie11的支持旧项目升级: 先把依赖中的版本号改成最新,然后删掉 node_modules 文件夹,重新安装 npm -i新特性官方删除了这个报错:无法对未挂载(已卸载)的组件执行状态更新。这是一个无效操作,并且表明我们的代码中存在内存泄漏。新的 root API 支持 new concu
2022-05-13 18:10:13
1483
原创 【4.30】js数组随机排序
4.30js数组随机排序function randomsort (arr) { for (let i = 0; i < arr.length; i++) { let index = Math.floor(Math.random() * (arr.length - i)); [arr[index], arr[arr.length - 1 - i]] = [arr[arr.length - 1 - i], arr[index]]; // 数组里的某些元素可能
2022-04-30 21:53:41
346
原创 【4.29】补课 手写js六大排序
补课4.29直接插入排序function insert (arr) { for (let i = 1; i < arr.length; i++) { let current = arr[i] // 提前保存 let j = i - 1 // 之前的序列前部排序好了 假设插入了一个新元素 while (current < arr[j]) { arr[j + 1] = arr[j] // 不断让位 j-- } arr[j
2022-04-29 23:11:39
494
原创 【自学】4.25 Web Storage
每天写点玩玩4.25为了弥补 Cookie 的局限性,Web Storage 出现了,Web Storage 是 HTML5 专门为浏览器存储而提供的数据存储机制Local Storage 与 Session Storage 的区别两者的区别在于生命周期与作用域的不同。生命周期:Local Storage 是持久化的本地存储,存储在其中的数据是永远不会过期的,使其消失的唯一办法是手动删除;而 Session Storage 是临时性的本地存储,它是会话级别的存储,当会话结束(页面被关闭)时,存
2022-04-25 23:49:35
145
原创 【自学】4.24 Pubsub/x6
自学Pubsub发布和订阅 其实和redux差不多PubSub.publish(data?.operatorType || 'message', data)PubSub.subscribe('profiler', (_, message) => {})x6注册React组件Object.keys(operators).forEach(operatorName => { const Component = operators[operatorName]; Graph.r
2022-04-24 19:37:47
258
原创 【自学】4.23 raf
每天写点4.23raf基本使用 const total = 100000 //渲染十万条数据 const once = 20 const loopcount = total / once let currentcount = 0 let lidoc = document.querySelector("ul") function add () { const sec = document.createDocumentFragment()
2022-04-23 18:38:01
399
原创 【自学】4.22 防抖/节流
每天写点玩玩4.22简易debounce/throttle function debounce (fn, delay) { let timer = null return function () { if (timer) { clearTimeout(timer) } timer = setTimeout(() => { fn.apply(this, arguments)
2022-04-22 22:06:44
253
原创 【自学】4.21 git相关
每天写点玩玩4.21git的一些操作git initgit config user.name "xxx"git config user.email "xxx"git statusgit add .git commit -m "xxx"git remote -vgit remote rm origingit remote add origin xxxgit push -u origin master慎用cnpm 能用yarn就用yarn...
2022-04-21 23:05:48
241
原创 【自学】4.20 call/bind/apply
每天写点玩玩4.20call//call 请在浏览器中测试window.color = "red";var o = { color: "blue" };function sayColor () { alert(this.color);}sayColor.call(this);//redsayColor.call(window);//redsayColor.call();//redsayColor.call(null);//redsayColor.call(undefined)
2022-04-20 17:50:13
449
原创 【前端自学(10)】一些基本的CSS
文章目录1 一些基本的CSS2 总结1 一些基本的CSS画一个三角形.rect{ width: 0; height: 0; border-color: transparent transparent red transparent; border-width: 90px; border-style: solid;}<div class="rect"></div>画一条线.line { width: 900px; border-bo
2022-04-18 22:35:58
94
原创 【前端自学(9)】闭包和作用域链
文章目录1 闭包和作用域链2 总结1 闭包和作用域链闭包初步引入//以下是一些例子//个人理解:凡是外部变量接收一个return的函数,比如let a=hd(),那么和该函数同级的变量以及父级的变量都会被这个外部变量绑定(相当于这块内存空间直接给了外部变量)//凡是函数调用一次,都会开辟一块新的内存空间//没有被绑定的变量会被js垃圾回收机制自动清除function hd () { let n = 1 return function () { console.log(++
2022-04-13 23:09:23
971
原创 【前端自学(8)】字符串 Symbol相关
文章目录1 字符串 Symbol相关2 总结1 字符串 Symbol相关复习字符串的相关方法//字符串基础let str = 'apple,banana,orange 'console.log(str.includes('banana'))console.log(str.startsWith('banana', 6)) //可以带第二个参数console.log(str.endsWith('apple'))console.log(str.repeat(2))console.log(s
2022-04-05 14:17:20
236
原创 【前端自学(7)】Promise基础
文章目录1 Promise2 总结1 PromisePromise.all 和 Promise.raceconst promiseClick1 = () => { let p = new Promise((resolve, reject)=>{ setTimeout(()=> { var num = Math.ceil(Math.random() * 10); //生成1-10的随机数 console.log('随机数1:', num)
2022-04-04 22:04:02
750
原创 【前端自学(6)】数组相关
文章目录1 数组相关2 总结1 数组相关去重//Setfunction unique (arr) { return [...new Set(arr)]}//在res里查找arr[i]的index,如果结果是-1,说明arr[i]是新元素,推入function unique2 (arr) { let res = [] for (let i = 0; i < arr.length; i++) { if (res.indexOf(arr[i]) === -1) {
2022-04-04 17:47:49
1117
原创 【前端自学(5)】直接赋值 浅拷贝 深拷贝
文章目录1 直接赋值 浅拷贝 深拷贝2 总结1 直接赋值 浅拷贝 深拷贝直接上实例//定义一个比较复杂的对象let o = { id: 1, name: 'john', msg: { age: 18, msgarr: [10, 30], }, complex: [ { complexa: 30, complexarr: [1, 2, { oa: 2, ob: 3, oc: [4, 6] }], }, {
2022-04-04 01:41:39
1046
原创 【前端自学(4)】JS对象相关
文章目录1 JS对象相关2 总结1 JS对象相关构造函数和原型基础//在es6之前,面向对象是通过构造函数实现的,Es6才有类的概念//复习 js创建对象的三种方式//1.利用Object()let obj1 = new Object()//2.利用对象字面量let obj2 = {}//3.利用构造函数function Star (uname, age) { this.uname = uname this.age = age this.sing = functio
2022-04-03 17:52:10
293
原创 【前端自学(3)】手写JS单链表
开始手写代码文章目录1 手写JS单链表2 总结1 手写JS单链表请自行在一个新的js文件中测试class Node { constructor(data) { this.data = data this.next = null }}class LinkedList { constructor() { this.head = null this.tail = null this.length = 0 } isEmpty () {
2022-04-01 16:03:16
876
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅