深信服前端日常实习一面(1h)
一面 (1h)
1.算法,输出数组中大于三的总和
//输出数组中大于三的总和 let arr = [1,2,3,44,55,231,3,2,1] function sum(arr){ return arr.reduce((pre,now)=>{ if(now > 3){ return pre + now } return pre },0) } console.log(sum(arr)); // 330
2.算法,字符串去重
// 字符串去重 let str = 'aaaaaabbbbbbbbcccccccccc' // hash对象保存标识 function fn(str){ let hash = {} let res = '' for(let i=0;i<str.length;i++){ if(!hash[str[i]]){ hash[str[i]] = true res += str[i] } } return res } console.log(fn(str)); // abc // 方法二,用indexOf let str = 'aaaaaabbbbbbbbcccccccccc' function fn(str){ let res = '' for(let i=0;i<str.length;i++){ if(res.indexOf(str[i]) == -1){ res += str[i] } } return res } console.log(fn(str)); // abc
3.自我介绍
4.项目的难点
如何结合自己深入学的内容,使用到项目中
通过函数装饰器,通过防抖装饰器包装网络请求防止重复请求
5.平时使用的数组遍历的方法有哪些
forEach,find,findindex,map,filter,reduce,indexOf,every,some
every:传递一个回调函数,接受(item,index,arr)三个参数,回调函数返回布尔值,当所有item都为真,则返回true,否则一个错,就返回false
some:传递一个回调函数,接受(item,index,arr)三个参数,回调函数返回布尔值,当有一个item为真,则返回true,全部都为错,就返回false
6.map,filter这些方法在vue框架的使用算安全的吗
由于这些方法返回的是一个新的数组,所以在vue中,他会重新走一遍数据响应式添加依赖,所以它是安全的,数据是响应式的
对于通过下标的方法,或者没用vue数组重写的7个响应式方法(push,pop,shift,unshift,sort,reverse,splice)是不安全的
7.vue2如何实现响应式的,(双向数据绑定)
详情看100行代码,10分钟,详解Vue2.x响应式原理——理解Observer,Dep,Watcher
8.Object.defineProperty,有使用过吗
详情看JavaScript Object.defineProperty( ) 方法的使用
9.vue3的数据响应式有了解过吗
50行代码,详解实现Vue3.x响应式核心代码,实现reactive,ref,computed
10.组件中的通信方式
1.父子,props
2.自定义事件,子传父
3.ref取子,$parent取父,
4.vue3,provide,inject,(祖孙)
5.发布订阅
6.事件总线
7.this.$root 取根组件
11.vue2 跟 vue 3的区别,vue3学习的程度
12.Promise如何实现按顺序发送请求
1.在第一个请求结束后then中再发送请求
2.使用async,await优化步骤,实现链式请求
13.如何使异步请求同时发送,并且等全部放回后再一起输出
变相考察Promise.all,Promise.allSettled,两个api的使用
14.git有使用过吗,说说平时用的比较多的指令
Git 项目实践中的常用命令,Git项目版本控制,Git项目分支管理,Git撤销与回滚等
15.git协作,合并分支报错遇到过吗,svn用过吗
这个没有用过,个人开发方面的短板,所以想去公司中学习
16.目前学习的规划是什么(正在学习的东西)
目前深入学习完原生JS,vue框架后,想在公司实习中寻找下个目标方向,顺便提高自己的项目经历
17.有什么想问的(反问)
简历有什么需要调整,有什么不足的地方,还需要学习
面试反馈
项目比较简单但是对于找实习够用,
js基础跟在项目中使用到的vue的内容都学习的比较好,实习的要求就是像基础的东西要学好,要了解的内容比较广
接下来二面会着重考算法,计网,以及基础等
#前端开发实习##实习##面经##春招##前端#