自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 常见js面试题(数组方法)

[1, 2, 3, 4, 5]1. reduce遍历数组每一项,若值为数组则递归遍历,否则concat。function flatten(arr) { return arr.reduce((result, item)=> { return result.concat(Array.isArray(item) ? flatten(item) : item); }, []);}2. toString & split调用数组的toSt...

2021-06-23 22:14:46 1344

转载 一句话说清,JavaScript垃圾回收机制和事件循环机制

JavaScript垃圾回收机制v8引擎内存大小默认为 0.7G(32位) 和 1.4G(64位),当然在node中,这些默认值是可以修改的。在什么时候开始触发垃圾回收机制?垃圾回收机制会不会影响正常的代码执行?垃圾回收的规则?垃圾回收机制的触发,总是在内存将近快满的时候,并会暂停正常代码的执行,等待回收完毕后,继续执行后续代码;垃圾回收规则,全局变量不回收,局部变量失去引用回收(未释放的闭包不做回收)。事件循环机制任务队列又分为macro-task(宏任务)与micro-task(微任务

2021-05-19 10:39:04 189

转载 深拷贝和浅拷贝应用及原理

深拷贝与浅拷贝的区别1.浅拷贝浅拷贝将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用(拷贝后的引用都是指向同一个对象的实例,彼此之间的操作会互相影响)2.深拷贝深拷贝是将原对象的各个属性的“值”逐个复制出去,而且将原对象各个属性所包含的对象也依次采用深拷贝的方法递归复制到新对象上(注意拷贝的“值”而不是“引用”)3.什么时候使用深拷贝我们在希望改变新的数组(对象)的时候,不改变原数组(对象)4.使用深拷贝的注意事项如果对象比较大,层级也比较多,深拷贝会带来性

2021-05-13 17:50:40 889

原创 Javascript 数组去重的6种思路

前端在日常开发中或多或少都会碰到有对数据去重的需求,实际上,像是lodash这些工具库已经有成熟完备的实现,并且可以成熟地运用于生产环境。但是这并不妨碍我们从思维拓展的角度出发,看看去重可以用几种思路去实现。首先是常规的双层循环比对的思路实现function doubleLoopUniq(arr) { let result = []; for (let i = 0, len = arr.length, isExist; i < len; i++) { // 定义一个变量表示当前元素

2021-05-13 17:18:18 219

原创 JS算法题

reserve让数组反转倒置const arr = [1, 2, 3, 4, 5];arr.reverse();console.log(arr); // [5, 4, 3, 2, 1]面试题一;用js来模拟reserveconst arr = [1, 2, 3, 4, 5];function reverse(arr) { let l = 0; let r = arr.length - 1; while (l < r) { let temp = arr[l];.

2021-05-13 15:31:12 122

原创 1.给定一个数组,请你编写一个函数,返回该数组排序后的形式。

第一题:给定一个数组,请你编写一个函数,返回该数组排序后的形式。题目分析:方法一:function evlabc(a){//排序大小var i = j = t = 0;for (i = 0; i < a.length; i++){for (j = 0; j < a.length; j++){ if (a[i] < a[j]){ t = a[i]; a[i] = a[j]; a[j] = t; } }}return a;}方法二: 直接用数组的

2021-05-13 15:17:37 1761

原创 2021-05-13

排序算法说明:(1)对于评述算法优劣术语的说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度: 一个算法执行所耗费的时间。空间复杂度: 运行完一个程序所需内存的大小。(2)排序算法图片总结:1.冒泡排序:解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。2

2021-05-13 14:53:53 71

原创 防抖和截流应用场景

防抖 (debounce)防抖,顾名思义,防止抖动,以免把一次事件误认为多次,敲键盘就是一个每天都会接触到的防抖操作。想要了解一个概念,必先了解概念所应用的场景。在 JS 这个世界中,有哪些防抖的场景呢登录、发短信等按钮避免用户点击太快,以致于发送了多次请求,需要防抖调整浏览器窗口大小时,resize 次数过于频繁,造成计算过多,此时需要一次到位,就用到了防抖文本编辑器实时保存,当无任何更改操作一秒后进行保存代码如下,可以看出来防抖重在清零 clearTimeout(timer)functio

2021-04-21 17:29:59 326

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除