前言
作为前端面试官,几乎每天都要对后选人进行面试。来来去去都是面试那几个问题。但同一个问题,候选人的回答都是多种多样的。
下面就列一些自己日常可能会对候选人问到的一些问题
-
-
- 请描述一下你对前端自适应及 Rem 的理解?【常用】
- 使用样式分别如何设置行元素、块元素上下垂值居中,还有没有其它方法?
- 请说一下你对 bootstrap 的栅格系统的理解?
- 请分别说一下你对浮动布局、绝对定位布局和弹性布局的理解?
- Css3 动画中的
transition
与animation
有什么区别,有没有用过什么常用的 css3 动画库? - 有没有处理过什么兼容性的问题?移动端及 PC 端的,如何解决?【常用】
- 使用过 javascript 数组
Array
的方法有哪些,有使用过哪些高阶函数? - 谈谈你对 Js 防抖动处理(
debounce
)或者节流 / 限频处理(throttle
)的理解,如window.onresize
、window.onscroll
? - 实现一个简单的
swiper
轮播组件的思想,支持 PC& 移动端的? - Dom 的原生事件如
click
,移动端与 PC 端有什么区别,有哪些,都说一下,越多越好? - Es 6 类构造函数中调用
super()
函数的作用是什么? - 谈谈你对前端输入校验的理解。
document.createDocumentFragment()
有用过吗?有什么好处?- 先
display:none
,然后操作 Dom 的超级大批量增删改,再display:block
有什么好处? Object.create(null)
有用过吗?有什么好处?- 如何实现一个对象的浅克隆与深度遍历?
- 介绍一下经典的发布订阅模式及实现应用有哪些,如 Event Bus 等说说你的理解?
- 说说你对前端路由的理解。
- 前端优化的方式有哪些?越多越好
- 说一下你接触过的一些经典算法,使用 js 实现冒泡及数组去重,要注意一些边界条件。
- 异步回调地狱及异步流处理,
promise.all
的理解。 - 谈谈你对 jsonp 的理解。
- 谈谈你对前端安全的理解。XSS,CSRF,SQL 注入,接口防刷,常用的加密方式用过哪些?
- 前端常见内存泄漏及如何避免?参考引用:https://blog.csdn.net/wei_dan1129/article/details/106521479
- http 握手,https 协议是怎么处理的?参考引用:https://www.cnblogs.com/lovesong/p/5186200.html
- 使用过的自动化构建工具有哪些?各有什么优缺点?gulp, gruntjs, webpack 和 rollup?
- 浏览器打开页面时发生了什么?【常用】
- 说到图片你想到了什么?【常用】
- 你是如何学习前端知识的?有自已的技术博客吗或 github 上有没有什么开源的项目?【常用】
- 有关注或者了解过前端前沿的一些技术吗?
- 有没有使用过 canvas,svg 及 iconfont?谈谈你的理解。
- 如何提高 HTML5 canvas 性能?
- 样式重置及 Es6 polyfill 的作用是什么?
- 英语水平如何?能否读懂 vue 官网英文文档?【常用】
- Vue 自定义指令、自定义过滤器及自定义组件的理解,如何实现方可挂载到全局使用?
- 说说 Vue 的生命周期有哪些?
- 说说 Vue 中插槽(Slot)的使用及作用。
- Vue 如何使用 computed 计算属性进行传参?
- Vue 深度 Watch 用过吗?为什么要用?Watch 如何在创建时就立即执行?
- Vue 中
const h = this.$createElement
的介绍 - Vue 中如何让定义的样式作用到子组件?
- Vue 的组件间可以如何进行通讯,如何设计组件?【重要】
- Vue 中如何做请求拦截?为什么要拦截?
- Vue 中为什么要做路由拦截?可以实现什么功能?如何做鉴权?
- Vue 使用中有没有遇到过数组数据更新,视图未更新的情况?如何处理?
- 简单说说 Vue 的实现原理?
- 谈谈你平时在 Vue 项目有没有做过什么优化处理,如兼容性处理等,gzip,ssr 等?
- 谈谈你对跨域的理解,如何解决?在 Vue 项目中如何设置反向代理进行接口联调,为什么要进行反向代理?
- Vue 是如何进行模板编译的?Vue 监听状态变化的原理是?
- 移动端中如何调试 Webview 中的页面?有没有用过 v-console 或者 fiddler?
- 谈谈你对 react 的生命周期的理解。
- 简单谈谈你对 virtual Dom 及 Diff 算法的理解。
- react hooks 有了解过吗?
- 你对 redux 及中间件的理解?
- 谈谈你对 react 无状态组件的理解。
- 如何 mock 数据来辅助开发?
- 有没有用过什么开源 UI 库,elementUI,MintUI,ant-design 等等。用过些什么组件。如何做地址级联?
- 谈谈你对小程序的理解?
- 谈谈你前端实现 native 开发,包括 RN 或者 Weex 的理解。
- 有没有接触过 hybrid APP 的开发如 Phonegap / Ionic。
- 有没有接触过桌面多终端开发的相关解决方案,如 electron / nw.js。
- 数据可视化方面常用的库有哪些?熟悉哪些?
- h5 Web小游戏有没有相关经验?
- 项目中遇到过什么困难?如何解决?【常用】
- 做过什么你认为最复杂最让你自己引以为豪的项目?为什么?
- 有没有了解过 PWA。
- flow 及 typescript 有什么区别?
- 谈谈你对 lerna.js 的理解。
- 谈谈你觉得自己做的最引以为豪的一个项目,为什么?【常用】
- 谈谈你常用到的一些操作数组的方法。【常用】
- 前后端 SPA 页面缓存机制如何设置(特别针对微信)?【重要】
- three.js 里面有些什么材质,有些什么区别?参考引用:https://threejs.org/
- webgl 屏幕坐标,空间坐标怎么转?屏转空:1、坐标系转右手坐标系;2、点经过 projectionMatrixInverse; 3、再经过 camer.worldMatrix 转换。空转屏:MVP 转就行
- three.js 源码有没有什么优缺点?Three.js 是纯渲染引擎,而且代码易读,容易作为学习 WebGL、3D 图形、3D 数学应用的平台,也可以做中小型的重表现的 Web 项目。但中大型项目必须要配合更多扩展库才能完成,预开发的控件少。
- webgl / three.js 模型加载进来,不在场景中间如何处理?设置 camera 的 target 为模型的坐标即可
- 说说宏任务及微任务,event loop。参考:https://blog.csdn.net/lc237423551/article/details/79902106【大厂必问】
- 前端安全及如何防止?如何避免跨站提交避免cookie泄露【大厂必问】
- http,https,http 缓存机制(https://www.cnblogs.com/ranyonsue/p/8918908.html),http 2,http 3 都有什么特性(https://blog.csdn.net/howgod/article/details/102597450)?【大厂必问】
- 理解 JavaScript 的 async/await。参考:https://segmentfault.com/a/1190000007535316【大厂必问】
- javascript运行时中的堆栈和队列。参考:https://www.cnblogs.com/kanyu/p/9838962.html【大厂必问】
- token 如何生成?参考:https://www.cnblogs.com/panshao51km-cn/p/11728901.html【大厂常问】
- 如何避免内存泄露?参考引用:https://www.jianshu.com/p/7efe8d4a06cb【大厂常问】
- 超长列表展示如何优化?(如 1 万条)参考:https://www.cnblogs.com/imwtr/p/10428819.html 或者 https://www.6hu.cc/archives/5557.html【大厂常问】
-
要注意以上加粗的内容都是前端开发中比较重要的一些知识要点,要进行系统的学习并结合一系列项目实践才可以更加深刻的理解。
持续更新中…
长期招前端,地点:广州 珠江新城高大上写字楼,有兴趣直接联系本博博主
1、对web标准有良好认识,能够高保真还原设计稿,兼容各种浏览器(熟悉移动端各种手机兼容性处理);
2、熟练掌握ES6、ES7,熟悉webpack、git等工具;
3、熟练掌握CSS预处理器、前端自动化构建、CSS3动画设计;
4、熟练掌握Vue.js,理解前端MVVM框架;
5、熟悉微信公众号H5,小程序开发;
6、熟悉Canvas、SVG、Echarts、D3.js等可视化技术;
7、了解java、nodejs、python、php或者其他任何一门服务端语言;
8、有良好的编码习惯,结构清晰、命名规范、逻辑性强;