房屋设计装修网站,苏州哪家做网站,apicloud wordpress,大连开发区1.v-for、v-if先后顺序。
官方不建议一起使用#xff0c;但是有时候面试的时候会问到。
在vue2中是v-for先与v-if的。
源码js编译结果#xff1a; _c()就是vm.$createElement()#xff0c;意思是创建一个虚拟的element#xff0c;就是返回值是VNode。
_l就是renderlist…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的条件则渲染一个注释节点。 但是在vue3中优化了这里先判断后循环性能会更好。
相当于
性能明显较vue2有了提升
2.forEach跳出循环
很明显这个方法就是跳不出的但是面试的时候会挖坑问你能不能跳明确的说不能
旁门左道1循环到指定节点后splice()把剩余的项删除或者让数组的length0
旁门左道2到指定节点后抛出错误终止循环。
其实如果是数据量大的话更推荐使用some。
以下是cdn中对some的介绍 3.forEach与map的区别
说到forEach了讲一下它与map的区别。
网上很多都说forEach会改变原数组而map不会实际上这样是不准确的
我们先看一下cdn对这两个方法的解释 简单来说就是forEach 忽略函数的返回值而 map 则将函数的返回值收集到一个新的数组中。
map和forEach会不会改变原数组
这需要看我们面对的数据类型是基础数据类型还是引用类型。
这是因为引用类型的元素实际上存储的是引用内存地址而非值本身。因此通过引用可以访问和修改原始数组中的元素。
而number,string,Boolean,null,undefined它们在栈内存中直接存储变量与值。
所以如果数据类型是基本数据类型时forEach也是不改变原数组的因为它们在栈内存中直接存储变量与值。
注
基本数据类型字符串String、数字(Number)、布尔(Boolean)、、空值Null、未定义Undefined、symbol
引用数据类型对象(Object)其中数组(Array)、函数function是一种特殊的对象