一些面试会问到的奇怪问题与面试总结

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()把剩余的项删除,或者让数组的length=0

旁门左道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)是一种特殊的对象

相关推荐

  1. html自学笔记面试问题

    2024-01-19 11:26:02       23 阅读
  2. 面试GIT问题解答(含答案)

    2024-01-19 11:26:02       33 阅读
  3. 面试问题

    2024-01-19 11:26:02       36 阅读
  4. 面试问题

    2024-01-19 11:26:02       41 阅读
  5. 面试碰到一些问题

    2024-01-19 11:26:02       33 阅读
  6. 面试遇到VUE问题

    2024-01-19 11:26:02       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-19 11:26:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-19 11:26:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-19 11:26:02       82 阅读
  4. Python语言-面向对象

    2024-01-19 11:26:02       91 阅读

热门阅读

  1. 多数据源配置H2 Mysql

    2024-01-19 11:26:02       54 阅读
  2. 通用导出模板

    2024-01-19 11:26:02       46 阅读
  3. C#设计模式教程(4):单例模式

    2024-01-19 11:26:02       50 阅读
  4. 1.7 面试经典150题 - H指数

    2024-01-19 11:26:02       60 阅读
  5. arcgis js 4.x加载地图服务跨域配置(.Net方式)

    2024-01-19 11:26:02       52 阅读
  6. 【CSS】垂直居中的四种实现方式

    2024-01-19 11:26:02       56 阅读
  7. 离线安装python2的MySQLdb

    2024-01-19 11:26:02       51 阅读
  8. LeetCode解法汇总2171. 拿出最少数目的魔法豆

    2024-01-19 11:26:02       50 阅读
  9. 网络工程师:软件编程基础知识面试题(九)

    2024-01-19 11:26:02       50 阅读