- 博客(17)
- 收藏
- 关注
原创 javascript深拷贝与浅拷贝的区别
2.深拷贝:拷贝的是值,复制并创建一个一摸一样的对象,不共享内存,旧对象的改变不会影响新对象。注意:当对象只有一级属性为深拷贝,而当对象有多级属性时为浅拷贝。1.浅拷贝:拷贝的是对象的指针,而不是复制对象本身,新旧对象共用一个地址。④Object.assign(目标对象,旧对象)Object.assign(目标对象,旧对象)5.用递归函数实现浅拷贝。
2023-09-04 20:28:21
66
1
原创 事件循环经典面试题
3.遇到async1()执行 打印async1 start 然后执行await 打印async2之后阻塞async1 end将其加入微任务列表。4.跳出函数继续向下执行 碰到new promise执行 打印promise1 之后遇到.then为微任务加入为人物列表。5.跳出后执行最后一行代码 打印script end 至此第一轮宏任务执行完毕 开始执行第一次微任务。6.此时微任务列表按顺序打印 async1 end、promise2微任务 至此第一轮微任务执行完毕。2.遇到定时器为新的宏任务先不执行。
2023-08-28 23:27:24
152
原创 js防抖与节流
等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能。②防抖:n秒后再执行该事件,若在n秒内被重复触发,则重新计时。1.防抖与节流在本质上是优化高频率执行代码的一种手段。①节流:n秒内只运行一次,若在n秒内重复触。
2023-08-28 22:42:29
79
原创 vue项目中为生命什么data是一个函数而不是一个对象
因为组件是可复用的实例,如果其它页面也用到了该组件,且不使用return包裹数据就会全局可见,造成变量污染,只要其中一个页面更改数据其他页面用到该组件的变量也会被修改。因此组件中的data必须是一个函数,使用return返回一个对象。而vue根实例可以是一个对象 其它组件data必须是函数。
2023-08-28 17:03:44
28
原创 v-if和v-show的区别以及v-for的使用
v-if是惰性的,如果一开始条件不满足,元素就不会被渲染,知道条件满足才开始渲染元素对应的是子组件和监听器的重新创建和销毁。v-show 无论条件是否满足都会渲染元素 通过css属性显示或隐藏 对应display属性。v-if条件很少改变 v-show频繁样式切换。v-if和v-for的优先级(不建议一起使用)vue2 v-for的优先级高于 v-if。vue3 v-for的优先级低于v-if。
2023-07-28 21:01:34
74
1
原创 vue2实例的生命周期(钩子函数)
此时实例挂载完成 可以访问dom元素 创建vm.$el替换el属性完成模板编译。数据更改触发该生命周期 此时dom中的数据还未更新完成 还没有编译到模板中。数据更改就会触发该生命周期 此时dom中的数据已经更新完成 编译到模板中。实例销毁时触发该生命周期依旧可以访问vue实例中的数据模型和方法。vue实例从创建到虚拟dom产生到数据绑定监听数据变化再到vue实例销毁的过程。*实例初始化阶段生命周期和实例挂载生命周期只会执行一次。*实例更新阶段生命周期只要数据改变就会一直执行。updated 实例更新完成。
2023-07-25 18:44:00
38
原创 js中this的指向问题
this 是函数赖以执行得环境对象(1.关注this被谁拥有 2.关注拥有this方法被谁调用 this就指向谁)1.单独使用this this在node js指向当前模块 this在浏览器指向全局对象window。2.函数内部使用this this指向全局对象 global window。3.方法中使用this this指向拥有该方法得调用者。4.在事件中使用this this指向接收事件得元素。5.显示函数绑定时,可以更改this指向。
2023-06-27 16:33:25
40
1
原创 javascript数组相关方法
参数: item循环的元素、index当前元素的索引、array原始数组。参数: item循环的元素、index当前元素的索引、array原始数组。参数: item循环的元素、index当前元素的索引、array原始数组。返回值: 返回被删除或被替换的元素所组成的数组 是否改变原数组:是。参数: 无 返回值: 返回被删除的元素 是否改变原数组:是。参数: 无 返回值: 合并后的新数组 是否改变原数组:否。参数: 无 返回值: 转换后的新数组 是否改变原数组:否。
2023-06-25 17:33:47
31
1
原创 操作符与类型转换
{ }先调用valueOf(),结果是{ },不是原始值,所以继续调用toString(),结果是“[object Object]”,是原始值,将“[object Object]”返回。3、否则,调用这个对象的toString()方法,如果toString()方法返回的是一个原始值,则返回这个原始值。转换标准,先调用value of(),结果还是[ ],不是原始值,所以继续调用toString()2、否则,如果输入的值是一个对象,则调用该对象的valueOf()方法,4、否则,抛出TypeError异常。
2023-06-14 17:46:51
27
1
原创 父子元素均为块级元素,实现子元素居中
②父元素相对定位、子元素绝对定位 子元素设置 top:50%、 left:50%、 margin-left: weight/2 margin-top: height/2。②父元素设置display:flex,子元素水平居中justify-content:center、垂直居中aligin-items:center。4.使用弹性盒模型:①父元素设置display:flex,子元素设置margin:auto。3.子绝父相:①父元素相对定位、子元素绝对定位然后为子元素调整位置。
2023-06-12 17:54:10
66
1
原创 px em rem的使用与区别
3.rem(root em 根em)的出现是为了解决em的缺点,em可以说是相对于父级元素的字体大小,当父级元素字体大小改变时,又得重新计算。rem出现就可以解决这样的问题,如果没有人为设置当前对象内文本的字体尺寸,那么它相对的是相对于浏览器默认的字体尺寸(16px)。2.em(相对长度单位) em单位的名称为相对长度单位,它是用来设置文本的字体尺寸的,注:为了简化 font-size 的换算,我们需要在css中的 body 选择器中声明。1.px(像素)是固定长度单位,不会随其它元素的改变而改变。
2023-06-12 17:46:33
82
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人