目录
4.获取数据时,加载loading动画,在哪取消比较好Diff算法的优化在哪?
9.什么是闭包?使用闭包的时候需要注意什么?闭包的原理是什么?
10.小程序的上拉加载、下拉刷新怎么实现,如果使用纯js怎么实现?
1.讲解es6新增map和set?
①set指的是“集合”数据结构,map指的是“字典”数据结构;
②set是以“[value,value]”形式存储元素,map是以“[key,value]”形式存储元素;
③set不能通过键查找特定值,而map可用get()通过键查找特定值并返回。
2.Ts的枚举和元组是什么?
枚举(enum):是对javascript标准数据类型的一种补充,可以通过属性获取值,也可以通过索引。
元组(tuple) :它允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
3.vue3中的beforeEnter钩子函数怎么用?
beforeEnter路由独享守卫,可以在路由进入之前进行一些校验操作。
4.获取数据时,加载loading动画,在哪取消比较好Diff算法的优化在哪?
加载loading动画一般在发起请求时就开始显示,在数据加载完成后再隐藏。如果是通过异步请求获取数据,在异步请求的回调函数中隐藏loading动画,这样可以确保数据已经加载完成。
Diff算法的优化,可以从以下几个方面入手:
1.减少比较的次数:在数据更新时,对比前后两个数据是否一致,如果一致则不进行比较。
2.缓存结果:可以将比较的结果缓存在内存中,下次比较时直接读取缓存结果,避免重复比较。
3.分片比较:将大型数据拆分成多个小的数据块进行比较,这样可以将比较的时间降到最低。
5.Jq中的$(this)和this的区别?
this表示当前的上下文对象是一个html DOM对象,可以调用html对象所拥有的属性和方法。
$(this)表示的上下文对象是一个jQuery的上下文对象,可以调用jQuery的方法和属性值。
6.什么是回流什么是重绘?
回流:DOM树中的元素被增加或删除,导致浏览器需要重新去渲染整个DOM树,这个过程叫做回流。
重绘:DOM树中没有元素被增加或删除,只是样式的改变,针对浏览器对某一元素进行单独的渲染,这个过程叫做重绘。
回流比重绘更消耗性能,回流必然导致重绘,但重绘不一定导致回流。
7.Var let const的区别?
①变量提升:var声明的变量存在变量提升,let和const不存在变量提升,即它们所声明的变量必须在声明后使用,否则报错。
②块级作用域:var不存在块级作用域,let和const存在块级作用域。
③重复声明:var允许重复声明,let和const在同一作用域下不允许重复声明。
④修改声明的变量:var和let可以修改,const声明的是一个只读常量,一旦声明,常量的值就不能改变,但对于对象和数据这种引用类型,内存地址不能修改,里面的值可以修改。
⑤初始值设置:var和let可以不用设置初始值,const必须设置初始值。
8.父组件如何调用子组件的方法?
①通过ref直接调用子组件的方法;
②通过组件的$emit、$on方法。