一些面试会问到的奇怪问题

1.v-for、v-if先后顺序。

官方不建议一起使用,但是有时候面试的时候会问到。

在vue2中是v-for先与v-if的。

源码js编译结果:

_c()就是vm.$createElement(),意思是创建一个虚拟的element,就是返回值是VNode。

_l就是renderlist函数,第2个参数是一个回调函数,里面会传入的item。

先走v-for的逻辑,再根据v-if的条件去判断是否渲染li这个元素,如果没命中v-if的条件,则渲染一个注释节点。

一些面试会问到的奇怪问题_第1张图片

但是在vue3中优化了这里,先判断后循环,性能会更好。

一些面试会问到的奇怪问题_第2张图片相当于:

一些面试会问到的奇怪问题_第3张图片性能明显较vue3有了提升

2.forEach跳出循环

很明显这个方法就是跳不出的

旁门左道1:循环到指定节点后splice()把剩余的项删除,或者让数组的length=0

 旁门左道2:到指定节点后抛歌错误,终止循环。

其实如果是数据量大的话更推荐使用some。

一些面试会问到的奇怪问题_第4张图片

你可能感兴趣的:(vue.js,前端,javascript)