今日头条前端实习生面经
今天面试了头条,效率是真的高,一晚上连续三面,最后让我等结果。自学一个月前端,很累,然后基础就有点差,特别是dom和css方面。准备期间看了很多帖子,现在回馈社区。
一面
上来面试官先让我自我介绍了下,闲聊了下,然后开始面试
- inline和block的区别;然后问了为什么img是inline还可以设置宽高,然后我就懵了。。。面试官告诉我这是替换元素决定的,还有textarea也是inline可以设置宽高。
- Position的四种值的作用及影响,主要relative和absolute是否脱离文档流以及相对位置
- 如何实现水平垂直居中(1.flex布局justify-content+align-items 2.若已知子元素宽高,用absolute+负margin 3.不知宽高,用absolute+translate或者left:0,right:0,top:0,bottom:0,margin:auto;
- 问我闭包是啥,然后有啥作用,我答了es5中可以实现块级作用域,可以模拟私有变量,可以生成单例模式(然后就让我用闭包写了单例模式。
- 问了几个http状态码和请求方法(GET,POST,PUT,DELETE)以及他们的作用。GET和POST的区别
- 问了下cookie和session的区别,localstorage和sessionstorage的区别
- 编码,给两个有序数组,merge一下。
面了大概45分钟,结束后,面试官说我答的还不错,大体都答出来了。自学一个月这样还不错,小小的夸奖了一波。让我等一会,二面等下就开始。然后大概等了5分钟,二面来了。
二面
面试官很严肃,上来就出题。
- 让我用css实现一个硬币旋转的效果,我就很蒙,直接说了不会
- 问了下我react生命周期,我还是不会。
- 又让我用canvas写个在页面上可以拖拽的球。我canvas都忘了,还是不会,面试官问我,你简历上不是写了这个嘛(所以说简历千万别给自己挖坑,写的任何东西都得完全掌握)。后面我问可以用css画个球,然后用dom来拖拽嘛,面试官同意了,就写了下。
- 问了下css3有哪些东西,我说刷过一遍现在不太记得了,面试官就pass了
- 问了我事件委托以及冒泡原理。
- 让我写了原生Ajax,还好这个写出来了,不然就跪了。
- 写个函数,可以转化下划线命名到驼峰命名,我用split写了下,然后面试官又让我用正则写了一下。
- 写一个函数可以实现深拷贝
- 写一个js的原生Ajax。
面了大概30分钟,我觉得答的很差,问了几个都不会,我花了好久才弄懂的this指向,箭头函数,词法作用域以及ECS啥的都没问。后面面试官还是说让我等几分钟,三面等会开始。过了大概5分钟,三面开始。
三面
面试官很亲切,然而我答的很差。
- 问了下进程间通信,我答了管道,信号量以及共享内存(应该还有消息队列,信号,套接字)
- 编码过程为什么使用虚拟地址而不是物理地址,这个直接说不会了。
- 求a到b的最短距离,然后上传一张图,这个时候图加载不出来了。面试官说刚好这个可以做个实战题目,作为前端开发,如果遇到资源无法加载,是什么问题,以及如何解决。(大哥,我才学一个月前端,我哪知道怎么解决)然后就答了不会。
- 然后面试官给图片换了个cdn,我这边可以看到了。然后是个用地杰斯特拉算法求最短路,我竟然把这个算法忘了。然后想了半天没想出来,问面试官可以用搜索写嘛,他说可以。然后我用搜索+回溯强行写了一个解法。。。
- 然后面试官说本来后面还有算法题,但是既然你忘了这个算法,后面的就不问了。
面了大概30分钟,面试官问我有啥想问的,我就问了下学习方法路径啥的,面试官给了一些反馈和建议,然后让我等结果。
最后答的我很难受,不太报希望了,还是好好准备腾讯笔试吧。
#实习##面经##前端工程师##字节跳动#