- 博客(16)
- 收藏
- 关注
原创 将普通数组转成树形结构
递归方法通常直观且易于理解,但在处理大量数据时可能会有性能上的挑战,可能面临堆栈溢出或性能问题。迭代方法和使用 Map 的方法通常可以提供更好的性能,特别是在数据量较大或层级较深的情况下,通常更适合处理大数据量和层级深的情况。选择合适的方法可以根据实际需求进行权衡和调整。DFS适合递归实现,BFS适合迭代实现。选择取决于数据结构和需求,例如是否需要按层级构建树。
2024-07-19 13:54:51 974
原创 nextTick
在 Node.js 中,它用于将回调函数放入事件循环的下一轮,以确保当前操作完成后执行。在 Vue.js 中,它用于确保 DOM 更新后执行特定操作。理解和合理使用 nextTick 能够有效地控制代码执行顺序和优化性能,但也需要注意避免滥用带来的副作用和调试困难。
2024-06-14 11:50:22 941
原创 hash和history路由的区别
Hash 路由:更简单、兼容性好,适用于不需要 SEO 和简单的单页应用。History 路由:URL 更加美观、SEO 友好,但需要额外的服务器配置支持,适用于对 SEO 有要求、能控制服务器配置的项目。
2024-06-13 18:01:37 1036
原创 数组去重的几种方法
先对数组进行排序,然后使用 reduce 来去重。在 JavaScript 中,数组去重可以通过多种方法来实现。Set 是 ES6 引入的一种新的数据结构,它本质上是一个集合容器,其中的每个值都是唯一的。利用 ES6 中的 reduce 方法和对象属性的唯一性来实现数组去重。利用 ES6 中的 reduce 方法和 Map 对象来实现数组去重。通过 filter 方法和 indexOf 方法来实现数组去重。利用递归和 indexOf 方法来实现数组去重。利用对象键的唯一性来实现数组去重。
2024-06-13 10:41:44 429
原创 闭包相关内容
闭包是指在函数内部定义的函数(内部函数)可以访问其外部函数中的变量,即使在外部函数执行完毕后,这些变量依然可以被内部函数访问和操作。这种机制依赖于函数的词法作用域(Lexical Scope),即函数在定义时所处的作用域。闭包是 JavaScript 中由词法作用域导致的现象,允许函数访问和操作其外部函数中的变量,甚至在外部函数执行完毕后仍然可以访问这些变量。它在数据封装、状态保持和异步编程中具有重要作用,是理解 JavaScript 函数行为和作用域的重要组成部分。
2024-06-12 18:05:58 438
原创 new 操作符具体做了什么
这个 myNew 函数模拟了 new 操作符的行为,包括创建新对象、设置原型、绑定 this 并返回新对象。当使用 new 操作符调用构造函数时,会执行一系列步骤来创建一个新的对象,并将其初始化。this 指向新对象。
2024-06-12 17:32:45 301
原创 <a>标签置灰后仍可以点击
要确保按钮在被禁用时无法点击,可以在按钮组件中添加disabled属性并根据record对象的属性值来动态设置该属性。在代码中已经有对disabled属性的设置,但可能存在一些问题导致按钮置灰后依旧可以点击。
2024-05-30 11:30:45 325
原创 浏览器相关
MIME类型通常用于HTTP协议中的Content-Type头字段,指示发送的数据是什么类型的数据,以便接收方能够正确处理它。在 HTTP/1.0 中规定的通用首部,这个首部的效果依赖于不同的实现,所以在“请求 - 响应”链中可能会有不同的效果。当这个消息首部出现在 HEAD 请求的响应中,而这样的响应没有消息体,那么它其实指的是应用在相应的 GET 请求的应答的值。这个标识的是当前客户端可以接受的字符编码(所谓字符编码就是对于可见或者不可见字符的编码方式,如utf-8,GBK等);
2024-05-21 14:49:30 656
原创 JS中变量真假值
基础数据类型:Number、String、Boolean、Null、 Undefined、Symbol(ES6)引用数据类型:Object(在JS中除了基本数据类型以外的都是对象,数据、函数、正则等)JavaScript中有 6 个值为“假”除了这 6 个外,其它均为“真”值。
2024-05-20 11:34:50 166
原创 点击打开浏览器窗口,窗口已存在,跳转到已有窗口,不存在则新开窗口
首先尝试检查是否有与指定名称匹配的窗口,如果有则尝试在该窗口中加载指定页面,否则将新开一个窗口加载页面。需要注意的是,由于浏览器行为的限制,无法保证能够在已有窗口中加载页面,因此代码只是模拟了这种行为。
2024-03-04 16:58:03 797
原创 优化代码并避免出现 Maximum update depth exceeded 错误
优化代码并避免出现 Maximum update depth exceeded 错误
2024-02-27 11:51:48 745
原创 Python学习记录3
for 循环和 while 循环(在 Python 中没有 do…Python pass 是空语句,是为了保持程序结构的完整性。如需循环一组代码指定的次数,可以使用 range() 函数,pass 不做任何事情,一般用做占位语句。
2024-02-26 11:53:30 368
原创 Python学习记录2
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。当使用以冒号分隔的字符串,python 返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。
2024-02-23 17:09:23 840
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人