记一次蚂蚁金服电话面试经历

前端时间接到蚂蚁的电话面试,记录一下面试的过程。
以下是我和面试官的谈话:
面试官:做个自我介绍
我:随便做了些介绍,这个相信大家都有准备。讲了自己这几年工作主要做什么,用的技术栈有哪些,其中提到了umi+dva+antd这一套技术栈,对方表示他们也有用这一套,这对我倒是一个好消息
面试官:谈下对 umi 和 dva 的看法
我:这一块答得不是很好,主要讲了好处,但是有没有突出重点。最后表示自己只是会用的哪个层次。
面试官:看你简历写的你会vue、react 谈谈他们之间的区别
我:谈了vue的双向数据流,react的单向数据流,写法上的区别,jsx,虚拟dom,性能等
面试官:react 中 key 的作用
我:key 作为元素的唯一标识用来表示元素的唯一性,在进行diff算法比较时,通过key避免不必要的渲染,实现高效的视图更新机制。
面试官:谈谈 redux 的理解
我: redux 是 react 应用的状态管理机制,为了解决多页面多组件之间的数据通信。主要有Store、Action、Reducer三部分组成,由页面发起一个 Action 操作修改 Store 中 的 state,在 reducers 修改 state,返回新的 Store,Store更新后通过 内部的 getState 方法通知页面更新视图。
面试官:谈谈 react 生命周期
我:这个也不算难,但是可能由于紧张漏答了 componentWillReceiveProps 这个周期。
面试官:react 项目数据请求应该在哪个生命周期进行。
我:componentDidMount 周期。
面试官:react 生命周期应该在哪个环节做渲染优化。
我:shouldComponentUpdate 周期。通过条件判断返回布尔值确定是否更新视图。
面试官:聊聊虚拟 DOM 的原理
我:把整个 react 应用按照树形结构分层描述,给每个元素添加唯一的 key 值方便比较。。。。,答得不是很好。本身对 DOM 的概念比较模糊。
面试官:react 中 refs 的作用
我:访问 DOM 元素实例的句柄。
面试官:类组件和函数式组件有什么区别:
我:类组件可以有自身的状态和生命周期钩钩子函数,而函数式组件没有。
面试官:什么是受控组件
我:这个问题答得不好
面试官:什么是高阶组件
我:以一个组件为参数并返回一个新组件的函数,然后他问了具体的使用,这一点答的不是很好。
面试官:redux 有什么缺点
我:当组件的相关数据更新时,及时父组件不需要用到这个组件,父组件也有可能重新render,造成不必要的渲染。
面试:css 隐藏属性 display 和 visibility
我:display 隐藏元素,而且该元素原本占用的空间也会从页面布局中消失,会导致页面重绘,visibility 隐藏元素,但是页面元素占用的空间依然存在于页面不居中,不会导致页面重绘。
面试官:es6的新语法有哪些
我:let,const,箭头函数,class 类,拼接字符串,set,map,解构赋值,另外数组添加了一些新的方法,如reducer等。
面试官:谈谈解构赋值
我:解构赋值是指等式两边程式结构相同,就可以赋值上去,对象,函数也可以使用结构赋值,但必须保证对象是可枚举的对象。
面试官:display属性有哪些
我:有一个忘了,其他的答了。
面试官:用过 antd 吧,说说穿梭框组件实现过程和你认为在写这个组件中需要考虑什么问题?
我:没看过 antd 源码,答得有点懵。。。。。。
面试官:说说你工作中遇到的比较难得问题,怎么解决的
我:谈了混开APP中实现在线浏览word的问题和等值线降水图(这个未解决)
面试官:那我们换个话题,加入要做一个输入框@人的功能,谈谈你的实现思路
解释:就像我们在微信群里聊天,输入一个@,这时这个符号右边就会出现很多人名,就这个功能,监控输入字符有遇到@就出现浮层,用户点击选择名称,但是这个有一个难点是,你怎么保证你的浮层,刚好在@符号的后面,怎么去获取输入框元素中某个字的位置
我:没答上来,自己没有这方面的开发经验,不知道是否有API之类的,最后表示可能需要查一下知道该怎么实现
最后我问了下公司的项目和技术栈,无下文。

猜你喜欢

转载自www.cnblogs.com/blogcxz/p/11102582.html