总结前端面试过程中最容易出现的问题
前言
转自https://www.haorooms.com/post/qianduan_mianshi
javascript常见题目
一、您对js的原型是如何理解的?您对js的继承是如何理解的?能否举例说明js的继承?
关于这个题目,我之前的一篇文章 http://www.haorooms.com/post/js_constructor_pro ,您可以看一下。理解一下原型prototype,关于继承,那主要是js原型链的继承。关于继承的理解及举例(我这里就不详细介绍了,简单介绍之后,你即使背过了,也不一定理解,对于公司也是不公平的)。我还是推荐面试者看一本书《[JavaScript高级程序设计(第3版)]》,这本书对js讲的很详细。关于这个题目,您可以阅读其第六章就可以了!认真阅读之后,相信你能理解,也能够简单的说出来!
关于js的继承,确实是重点和难点,我写过两篇博客,大家可以看下:http://www.haorooms.com/post/js_lei_jicheng
http://www.haorooms.com/post/js_jc_lei2
二、js闭包?举例并说明其主要的作用!
关于闭包,其实是指有权访问另一个函数作用域中变量的函数。具体我之前也写过一篇文章,可以看一看!
javascript闭包的理解 http://www.haorooms.com/post/js_bb
javascript闭包入门理解(二):http://www.haorooms.com/post/js_bbtwo
三、js数组主要有哪些方法?主要参数你了解吗?
具体你可以查一下,常用的一般有如下:
1 、shift():删除数组的第一个元素,返回删除的值。这里是0
2 、unshift(3,4):把参数加载数组的前面,返回数组的长度。现在list:中是3,4,0,1,2
3、pop():删除数组的最后一个元素,返回删除的值。这里是2.
4、push(3):将参数加载到数组的最后,返回数组的长度,现在List中时:0,1,2,3
5、concat(3,4):把两个数组拼接起来。
6、splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...
7、reverse:将数组反序
var a = [1,2,3,4,5]; var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
8、sort(orderfunction):按指定的参数对数组进行排序 var a = [1,2,3,4,5]; var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]
9、slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
var a = [1,2,3,4,5]; var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]
四、js迭代的方法
every() 、fliter()、forEach()、map()、some()具体大家可以查一下!
五、js数组去重和排序
具体我就不详细描述了。
六、js正则表达式
关于正则:http://www.haorooms.com/post/js_regex_refuse ,这篇文章应对面试足够了!
让你写个简单的正则,去掉字符串左右空格。具体看看我之前的文章http://www.haorooms.com/post/js_kong_ge
关于正则,你可以去了解一下!
七、纯js的ajax请求原理
可以查询,了解一下!看下这几篇文章http://www.haorooms.com/post/js_ajax_chun 和http://www.haorooms.com/post/js_shixian_jquery 最后关于js实现ajax的,最新出了js的fetch方法,很不错的!
八、js模块化
可以看下我之前的文章:http://www.haorooms.com/post/js_require_zz
九、双等号隐性转换
具体看文章:http://www.haorooms.com/post/js_yinxingleixing
十、js操作符,字符串截取等
具体请看:http://www.haorooms.com/post/js_czf_mst
字符串截取,substr 、substring等的区别
十一、js中继承中call和apply()的区别
用法差不多,传递参数不同。具体你可以网上查查,也可以看下我的文章 http://www.haorooms.com/post/js_constructor_pro
十二、类数组转换为数组的方法
Array.prototype.slice.call(arguments);
十三、cookie 不设置过期时间,默认过期时间是多少?
关闭浏览器就结束了
十四、改变数组长度的方法有哪些?
shift、unshift、pop、push
十五、js事件循环 event loop
请看文章:http://www.haorooms.com/post/js_xiancheng
十六、require 和 import的区别
看文章:http://blog.csdn.net/qq_28702545/article/details/54892562
jquery常见题目
一、jquery源码研究过没有?
二、jquery插件写过没有,一般如何写?
可以看我之前的一篇文章:http://www.haorooms.com/post/js_jquery_chajian
三、jquery的bind(),live(),delegate(),on() 区别
网上可以搜索一下,看一下!
前端常见题目
一、如何处理跨域?
jsonp等,可以看下我写的 浏览器跨域访问解决方案
二、如何处理缓存?如何清除缓存。
ajax随机数、ajax参数、meta中设置等。可以看下我写的 js清除浏览器缓存的几种方法
三、http请求问题,HTTP请求信息由那3部分组成?
1、请求方法URI协议/版本 (例如:GET/haorooms.jspHTTP/1.1)
2、请求头(Request Header)(例如:Accept:image/gif.image/jpeg.*/* Accept-Language:zh-cn Connection:Keep-Alive Host:localhost等等)
3、请求正文
关于图片的请求,可以看我之前的一篇文章 http://www.haorooms.com/post/web_http_request
四、前端性能优化问题,你是如何处理前端性能问题的?
看我之前的一篇文章:http://www.haorooms.com/post/web_xnyh_jscss 及 前端性能优化补充篇
五、网站js和css如何压缩?有哪些方法?
ant+yuicompressor具体可以看看我之前的一篇文章:http://www.haorooms.com/post/ant_yuicom
ant:http://www.haorooms.com/tools/ant_book/
SASS等 可以对css进行自动压缩!
也可以用Grunt构建工具进行。可以看下 前端js和css的压缩合并之grunt
六、用到哪些css插件?
bootstrap,animate.css 等
七、让你自己搭建一个网站,你是如何做架构的?
考察前端架构能力。
八、一些状态码你了解吗?
200成功类、300重定向类、400客户端类、500服务器端类。具体可以网上查一下!
九、如何用浏览器进行代码调试?
谷歌浏览器、火狐、IE等。(不明白的同学具体网上可以查一下)
十、json字符串转为json的方法
具体请看:http://www.haorooms.com/post/js_jsons_h
http://www.haorooms.com/post/json_object_json_string
html+css+html5+css3 常见题目
一、假如一个页面,左侧固定,右侧自适应,你是如何做到的?
方法很多,一般是margin和浮动,具体可以网上查一下。很简单。
二、html5新的标签和特性有哪些?
html5标签有很多,你可以网上查一下。
三、你常用的css3有哪些?说出你记得的。
哈哈哈,这个很多,你要再复习一下css3包括其动画等等。
四、如何处理浏览器兼容性问题?
请看:http://www.haorooms.com/post/IE_jianrong
五、如何用css美化radio、checkbox等按钮样式?
具体可以看我的一篇文章:http://www.haorooms.com/post/css_mh_ck_radio
web touch常见题目
一、做手机网站长见的兼容问题有哪些?
看下手机网站相关文章。
二、网站如何自适应的?响应式网站一般如何制作?
可以随便聊聊。可以看下http://www.haorooms.com/post/css3media
三、zepto.js使用过程中有哪些问题?jquerymobile用过吗?会有哪些问题?
用过的话,可以随便聊一下!
加分项
例如,你们聊到数据库,数一下如何用mongo做分页等等,包括mysql数据库等等。
聊到inux系统,linux常用的命令。
聊到angularjs,vue.js、angularjs的指令,双向数据绑定。MVVM模式和mvc模式的区别及mvp模式。
聊到前端架构,及百度fits的jello等。
聊到常用的版本控制工具git或者SVN,讲讲git常用的命令,git回滚到某个版本怎么做( $ git reset --hard 某个版本号)
人事面试
人事面试和技术面试是有区别的,人事一般问一些概况总结方面的问题,我下面举一些列子吧!
一、你做了这么多项目,让你感受最深,印象最深的是哪个项目?你从中学到了什么?为什么会感受最深?
二、做前端开发这么多年来?说下你的感受吧!
三、简单自我介绍一下自己。
四、你对公司有什么需要了解的?
五、谈到薪资,谈到离职原因,谈到未来几年的规划等等,我在这里就不具体说了。
上面是我面试过程中最常见的一些问题。注意:面试的时候千万要真诚,不要撒谎,是什么就是什么,我列举上面题目的原因是有些前端人员可能技术很好,但是面试的时候紧张,没有准备。这样你简单准备了之后,就能发挥自己正常水平!广大朋友们,加油吧!