判断
回到题目,如果你真想检验一个人的水平。第一步先考察一下基本的编程基础,问几个基本的编程问题,可以和前端相关也可以无关。比如垃圾收集大致是怎么做的,setTimeout 大致做了什么(说会在另一个线程里执行回调的直接毙掉)。
第二步考察一下知识面,问问http、tcp的基本知识,dns是怎么工作的,或者常用框架的实现原理,看看候选人是不是除了自己的一亩三分地什么都不关心。
第三步考察hold业务逻辑的能力,从一个简单的注册页,或者查询页开始,先让说下代码的基本架构,然后需求、性能、可靠性、安全层层加码,看看能不能很快的反馈出解决方案。能对答如流的要么做过,要么对他来说这种复杂度的东西是小case。
前三步都没问题,基本上说明候选人已经还行了,但是行到什么程度,不知道。如果想找比较厉害的,就增加个第四步,亮点项目考察。
总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了,我整理一套前端面试题分享给大家,希望对即将去面试的小伙伴们有帮助!
肚子饿的时候容易心情不好,所以一定要乖乖吃饭。
前言: 腾讯会议面试的,面试官很nice,只能说我太菜了。
1. 两分钟的自我介绍(我说的时间长了,被打断,建议准备好两分钟自我介绍,实习项目经历往前说)
2. 让元素消失的几种方式?区别,优缺点?(opacity:0 visibility:hidden display:none z-index=-1)
3. 重绘和重排,哪些属性会造成重绘重排,如何避免?
4. TCP三次握手?为什么不是两次或者四次?TCP为什么可靠,可靠性表现在哪?
5. 浏览器存储,以及他们之间的区别(cookie,session,localstorage,sessionstorage)
6. vue中遍历为什么需要:key,不用可以吗?
7. 看程序写输出,修改代码输出3
var b=3;
(function(){
b=5;
var b=2;
console.log(b);
})();
8. 项目相关:饿了么项目
(1)项目的难点?(使用create-API模块的几种场景介绍)
(2)滚动效果如何进行优化(我说了一下吸附效果)面试官应该想要我说源码相关,但是我用的组件库
(3)收藏页面本地缓存,如何实现,保存的数据结构是怎样的
(4)评价页面如何优化(讲了实现和封装)
实习项目
(1)介绍一下这个项目
(2)文件图片音频的上传操作如何实现。
(3)项目的难点是什莫?遇到的问题?(页面路由传参,SVG图片处理)感觉面试官想打断我不想听了
9. 代码题,二叉树前序遍历
给定一个二叉树,请从根结点开始,按照前序遍历的顺序打印所有的节点,每次打印完一个子树后再打印一次根节点。比如:
2
/ \
3 4
/\ \
5 6 7
打印的结果是 2 3 5 3 6 3 2 4 7 4 2
再比如:
ajax
1)ajax请求的原理/ 手写一个ajax请求? 2)readyState? 3)ajax异步与同步的区别? 4)ajax传递中文用什么方法?