杭州玳数科技前端实习面经

只有一轮技术面。
1、ES6中常用的语法
let、coonst关键字,扩展操作符,解构赋值,Map和Set,模块化

2、数组能解构吗
(1)解构一下const a = [1,2,3],如何拿到第一个元素
const [first,second,third] = a; console.log(first)
(2)解构一下const a = [1,.....],后面有多少个元素我并不知道
const [first,...rest] = a; console.log(...rest)

3、对象的合并
最开始说了concat(但这个是数组的),然后说了bind,忘记说all了,面试官提示也可以用解构赋值

4、Map
(1)Map的应用场景?
说了集合的概念,无重复值

(2)Map的key可以放什么类型,Symbol这些可以放吗?
可以的,Map的key可以放任意类型,普通对象的键值对当中只能是字符串和Symbol

5、Set
(1)Set的应用场景?
说感觉不是很了解。面试官说了可以用在数组去重,瞬间想起来了

(2)Set的数组去重返回的是一个标准的Array吗?
不是,可以用Array.from或者扩展运算符转换成Array

6、CSS中用flex布局处理垂直水平居中
(1)已知内容大小
用align-items和justify-content都改成center
(2)未知内容大小,用transform有什么写法?
没有用transform来处理过,不会

7、(场景题)页面中点击div,使其从左边移到右边,可以用css动画效果,还有transform修改,还有margin。从性能的角度来看,用哪一个好一点。
我说用CSS动画更好,也就是transition。(面试官说不太对,但是具体是哪一个也没太听懂

8、(场景题)假如说我现在有一个业务,要在业务代码里面去修改Ant-Design的某一个组件里面的classname的某些样式,我应该怎么写才能操作到其内部。(怎么修改到三方UI框架里面的样式?)
用 :global。(可以通过 :global 选择器来覆盖 Ant Design 组件内部的样式。这种方法允许你在局部作用域的 CSS 中应用全局样式规则,覆盖第三方库中的样式。)

9、React
(1)(场景题)我清除我localstorage里面的某一个键值对,组件卸载的时候,我怎么能知道组件卸载了。(问的一脸懵,但是我猜应该是跟useEffevt相关)
在useEffect中写一个return方法,在里面执行自己的业务逻辑。
(2)如果想要计算某些东西,用什么hook比较合适一点。我要计算的这个值不是一直在变的,意味着我要缓存。(缓存就跟useMemo有关)
缓存的话我用的是useMemo,缓存一些数据,只有当依赖项改变的时候,才会重新进行计算,
(3)有一个和useMemo很像的东西,就是React.Memo,有了解过吗
只听说过,应该比较的不是某一个参数,而是比较的传入的props。面试官修正我的话:其实路是对的,它是来缓存这个组件更新还是不更新,这就是用memo来控制的,如果有个性化的东西就在props中的方法写,给你新的props和旧的props来写你的校验的逻辑。
(4)useCallback
用来优化函数性能,比如说它可以缓存一个函数的实例,可以避免每次渲染页面的时候不会再次创建同一个函数。
(5)状态管理器用过吗
用过Redux。

10、最近在项目中有没有关于性能优化的。
说了最近用useMemo缓存数据的部分。

11、反问
(1)后面还有几轮技术面
(2)部门负责的主要业务

总结:
面试官还是很好的,一直在引导我说,问的也都不是特别深入,薄弱点就是在css中transform和less预处理。整个面试只有30min,还是很友好的,毕竟只是实习面试。后续还有几个实习面试的,多多准备准备!

#前端面经##前端实习准备#
全部评论
是实习秋招两手抓吗?
点赞 回复 分享
发布于 08-22 01:32 山东

相关推荐

2 8 评论
分享
牛客网
牛客企业服务