1既然说到面试前端肯定是Javascript各种问,只好各种答。
2面试题肯定离不了,最近热门的Vue.js,React.js,Angular.js,Gulp,Webpack还有各种Js问题,还有令人头痛的算法问题,还好统统答上。
3到了腾讯大厦面试官还挺客套,开始让我做了个自我介绍,本想会问面试问题,结果聊了10多分钟的天,然后进入面试。
4直接就问项目当中vue的问题:
5 让我说了一些vue组件的生命周期:
6 new Vue({
7 el:'.container',
8 methods:{
9 beforeCreate: function () {
10 console.log('准备创建组件');
11 },
12 created: function () {
13 console.log('组件创建完毕');
14 },
15 beforeMount: function () {
16 console.log('组件的模板准备挂载到DOM');
17 },
18 mounted: function () {
19 console.log('挂载完毕');
20 },
21 beforeUpdate: function () {
22 console.log('准备更新了');
23 },
24 updated:function(){
25 console.log('更新完成');
26 }
27 beforeDestroy: function () {
28 console.log('准备destroy');
29 },
30 destroyed: function () {
31 console.log('destroy完成');
32 }
34 })
36 面试官又扔过一道题来:vue组件中的updated,和wath那个会在组件更新的时候先触发还好之前自己研究过,要不真不知怎么回答。
37 vue路由的实现原理,vue父子组件通信。
38 问了一下es6 import模块导入问题例如:
39 import {Button,Select} from 'element-ui'
40 有前文可知import会先转换为commonjs即
41 var a=require('element-ui');
42 var b=a.Button;
43 var c=a.Select;有此可知element-ui全部被引进了;
44 所以babel-plugin-component就做了一件事将 import
45 {Button,Select} from 'element-ui' 转换成了
46 import Button from "element-ui"; ui/lib/button
47 import Select from "element-ui"; ui/lib/select
48 之后又问了Js 存储问题问题这些算是一些老生常谈的问题了:
49 Gulp和Webpack前端自动化工具不一 一列举了
50 (1)本地数据存储:一般存储的都是数据
51 Cookie:浏览器均支持,容量为4KB
52 Web存储机制(Web Storage):H5,容量为5M
53 localStorage
54 sessionStorage
55 globalStorage(Firefox独有,Firefox13起就不再支持)
56 (2)数据库存储:
57 IndexDB
58 Web SQL
59 (3)离线存储(应用缓存):一般存储的是网页
60 Cache Storage:定义在 Service Worker 的规范中,配合 Service Worker 进行离线缓存
61 Application Cache:在定稿的 HTML 5.1 中被拿到了.
62 Javascript一些DOM和BOM问题。
63 跨域有几种方式
64 React 问了一下组件的生命周期和路由有没有用过并没有深问。
65 又问了php后端的问题 只是一些简单的如:cookie session区别 数据库的一些数据查询问题.
66 算法中问了 一些:两个变量在不借助第三方变量的帮助下实现两个值交换,和一些物体碰撞算法。
67 然后问了一些最近关注什么技术:webGl 白鹭之类的引擎也没有什么深问。
68 最后面试官说了一下现在公司项目运用的技术和团队情况。
69 大概面试了1个小时,面试官问了一些薪资待遇和上家公司为什么离职。出来之后天黑了差点迷路还好有百度地图本人可是第一次去深圳啊!