这绝对不是一篇技术文,如果你不喜欢,也请不要喷,你可以看看都有哪些问题,当然,在这里你可能得不到问题的答案,不懂的你可能需要自己去百度,也可以在下面留言交流,我已经声明了,这不是一篇纯技术文章,不喜勿碰,忽略就是;做文明人,共创一个和谐的网络环境,谢谢;
一、javascript方面问题
1、简单介绍项目以及所用到的技术,团队规模
这里就不一一细说了,反正就是霹雳拍啦一大堆,然后就介绍完了,介绍完了之后,面试官接下来问的问题也基本是根据我描述项目中所涉及到的技术去问吧,直接看问题吧!
2、ajax VS websoket
在websocket没有出现的时期,我们想要在聊天室这种形态模式下去轮询查询新的数据,基本通过setInterval固定时间去刷新请求,并发不大的时候,还要好点,服务器差不多的都能撑得住,但是并发一旦大起来,请求一多,好嘛,服务器数据库直接蹦;
而websocket这种,只需请求一次,那就是连接服务器,一旦连接,数据,服务器主动推送给客户端,虽然他对服务器一直keep-alive这种状态,需要消耗服务器内存,但是相对于ajax无数次不应的请求来说,肯定是大大提高了性能的;
当然两者肯定有优点有缺定,毕竟性质不一样,我觉得大家还是有必要了解一下这两者区别的
3、jQuery VS vue
可能很多人觉得这有什么可比性,其实我个人觉得,还就是jQuery和这类mv*框架有比较的价值,你想想,三大框架(vue、react、angluar)基本都是操作数据,虚拟DOM,双向绑定什么的,这三个框架之间的对比,大致是实现的方式去对比;
但是jQuery,基本是通过操作DOM,完全不一样的库,他们之间两个阵营当然更有可比性; (不喜勿碰,个人见解)
4、setInterval 时间是否会有误差?产生误差的原因?其原理是什么?
这个问题,误差肯定是会差生的,你想啊,setInterval异步函数,异步执行,js被解析的时候,碰到他,先不解析他,放他在一旁,先去解析同步的,等资源空闲下来的才去解析他,这样一来,解析其他代码肯定需要时间,这不就有延误嘛。
然后解析setInterval内部函数不也一样需要耗时,函数简单些还好写,你要是写了一大堆,那乖乖,可能产生的延误就不是一点点的;
5、闭包
老生常谈的问题,基本每个前端不管是初级,中级,高级或者资深前端都会被问到的问题吧; 简单点说就是一句话:有权访问另一个函数作用域内变量的函数都是闭包; 具体的附上MDN的解释,我就不做过多解释了 MDN地址
6、IE中造成内存泄漏情况以及原因
这个可能在IE,尤其IE8中表现的最明显,毕竟其他浏览器就是会很卡,但是IE8是直接崩溃,哈,真任性!具体的大家还是去百度吧,当然这个问题不仅仅是存在IE浏览器中,在各个浏览器中都存在;
7、浏览器垃圾回收机制
相信大部分语言,都有这么个机制,不需要在引用的变量之类的将会被回收,不然的一直常驻在内存中,那好嘛,浏览器迟早被你弄奔溃,闭包里面的就不行了,垃圾回收机制检查不到你这个变量是否被应用啊,所以嘛,造成内存泄漏了,如果并非必要,大家还是少写点闭包,写了请手动删除一下或者置为空,毕竟咱们的性能能提升就提升嘛,小细节解决了隐藏的大部分问题不是吗?
8、双向数据实现原理
这还是因为三大框架的出现,出现这么个话题,所以说,现在的趋势就是这样,你必须去了解,作为一个前端,你不能停止学习;否则你必将会被淘汰,而且很快,有多快?就像16年之前,你可以凭借html+css+jq,你就可以找到一份能解决温饱的问题了;
但是17年可能就困难很多了,当然也不是绝对的说,同时也不是说jq已经OUT了,我个人觉得jq至少在现今还是没有任何OUT的,如果作为一个真正将前端作为未来职业的人,JQ是必备的一种技能;
但是在这基础上,你还要必须学会三大框架的至少一种,在中国的这样的行情下,可能react和vue更加吃香吧,如果你还没有入手三大框架,个人建议从vue和react中选一个先学,你只有在环境中生存了下来,才能有时间去学习更多的东西,做自己想做的事情; 扯远了,说回双向数据绑定,这个还是要去理解一下的,至少知道Object.defineProperty()是怎么用的,他是个什么东西
9、页面优化
这个就是平时我们必须面对的一个问题,所以大家还是要去多多关注多多了解,
10、浏览器缓存原理
讲真,这个问题我没有回答的很好,因为毕竟,那啥,好吧,我么有研究过这个问题;要是说说cookie,sessionStorage,localStorage我还能讲出来,这个原理可能真被问住了,好吧,我表示自己真的有欠缺的方面;只能自己加加油了
11、虚拟DOM
其实主要是因为vue/react这些框架的出现,这个概念才热起来,个人觉得还是有很多公司会问这类问题的,大家还是要去了解了解
12、在项目中遇到难题以及解决方式
当然也是一顿噼里啪啦,其实每个人在项目中多多少少都会碰到吧,至于解决方式,我就是回答基本自行百度,或者去技术交流群询问之类的,不知道大家会怎么回答这样的问题,如果可以,欢迎留言交流
二、css方面问题
当时面试官在问css问题之前,先问了一下我会不会css,好吧,当时我愣了一下,说了句,那是会的,其实针对css并没有问太多,就两个问题,请看下面具体问题
1、对盒模型的理解
盒模型主要包括如下几点:margin border padding content;根据width或者height计算时包含的内容不同,而被分为以下两种盒模型
1、IE盒模型(准确的说是IE8以下盒模型),江湖人称怪异盒模型;当我们计算width或者height的时候,在IE8以下盒模型时,是包括了padding+border+content三者一起算的
2、IE8及其以上版本浏览器盒模型和w3c盒模型,江湖人称标准盒模型;这种盒模型在我们计算width或者height的时候,是不包括padding+border在内的,而是单一计算content的大小;
2、布局方式
大概包括以下几种布局方式:
1、弹性布局
2、固定布局
3、流体布局
4、混合布局
5、绝对定位布局
三、我所要问的问题
当然只是问了一下做什么项目、我去主要做什么、技术栈、加班情况等等这些;当然,其实可能有的人会问,为什么没有问福利,薪资待遇什么的,我个人是觉得,这只是电话面试,后面还有很多面,有些问题,不是当面说更好吗?
四、结束语
每家公司每个区域面试所问的问题可能都不一样,如果大家在面试中遇到了什么问题,或者觉得有什么好技术性面试题,欢迎大家留言交流,也欢迎大家对以上面试进行积极的讨论,能回答大家的技术性问题,我一定会回答,感谢大家的阅读