首先,一般情况下都是自我介绍。个人感觉自我介绍的时候,其实除了说明自己的一些基本情况之外,一定要突出自己的学习过程,而这个过程最好就是充分地体现了自己的自学能力。我自己的话,我就会说我学前端一年多了,最开始怎样怎样努力地学习,然后做了哪些项目,一个个地列举。最后说我平时的学习方法,我自己就是通过视频教学网站,博客园看博客,看书,实践等等方式自学的。其实,感觉面试官并不会觉得你啰嗦,反而会很认真地从你的自我介绍中抽出一些点来提问你。
面试官的提问(其实问了不少东西,把记得的列举一下):
1.一般用jq的时候是怎么绑定事件的?
答:我主要是用$(document).on()的方法,因为这个方法能使动态添加的dom节点也响应绑定的事件。这方法传入三个参数,事件名、事件类型、事件。我通常就把相应的事件独立成一个函数,然后调用,这样比较有封装性。
2.怎么实现js的模块化编程?
答:这个我主要是结合了之前看的阮一峰老师的javascript模块化编程系列来答的。推荐大家去看一下,很好理解:《Javascript模块化编程(一)》、《Javascript模块化编程(二):AMD规范》、《Javascript模块化编程(三):require.js的用法》
3.做的项目有用到h5吗?
答:都有用到一些h5的新特性,不过像h5中canvers这些能实现比较多功能就没有用得特别多。但是我自己有做一些练习来锻炼自己,例如照片中不同的滤镜模式,模糊程度调节等等。
4.有没有做过离线应用?
5.说一下你印象最深个项目,遇到的难点及解决方法?
答:这个我就详细说了自己独立完成前端开发部分的一个项目。解决方法我就突出表示大都都是我自己找资料,百度,StackOverflow上提问解决的。(感觉面试官比较满意这点)
6.你是怎么处理浏览器之间的兼容性问题的?
答:我是采用优雅降级的方法,我一般在谷歌浏览器上面最好了比较好的版本,然后再针对IE等浏览器写一些hack。如果涉及手机端的话,还会用@media做一些响应式的处理。例如...(又举例子)
7.为什么会学这些js框架(angular、node、react)
答:因为这些现在已经是前端的标配啦,前端发展地非常快,而且是往全栈方向发展的。。。什么什么的,反正就是说了一堆前端趋势和非学不可的理由。
8.怎样把一些内容加到页面上?
答:这个分情况吧,例如一些弹框提示的话,就是事先已经知道内容,类似于弹出登陆框的话,就先在页面上写好,调整好位置,然后隐藏,点击某个地方在fadeOut出来那样,如果是那种列表数据渲染的话,就写成一个template,通过ajax等方式拿到数据渲染好之后,再append到相应的位置。(好像还说了一些其他的我自己也忘了)
还有一些忘记了……
二面:
首先和面试聊了一会公司的情况,也还是要自我介绍的,了解了这次实习的内容等等。然后面试官开始针对我简历上的内容和项目提问:
1.怎样提高页面性能?
2.怎么处理浏览器缓存问题?(这个问题好像面试官经常问)
答:可以在修改后的文件末加一个版本号,还可以用gulp配置自动更新版本号。
3.如果修改的文件很多呢?
答:(其实我已经回答过了,估计是面试官没有听到)所以可以用gulp自动化工具去配置自动更新修改了的文件的版本号啊,这样就不用手动添加了。
4.boostrap的设计理念是怎样的?
答:(说真的,没想过这个问题,但是我知道核心是栅格布局)我觉得boostrap的核心就是栅格布局,这个框架做了很多兼容性、响应式的处理,我也研究css的部分源码,例如。。。(又是举例子),然后我觉得这个一个非常好用,非常值得学习的框架。
5.如果你学的这些框架,来我们这里用不上,这里比较偏后台一点,你怎么看?
答:前端也有后台,例如node.js就是,语言的核心思想都差不多,就是mvc,mvvn等等。。。又说了一堆装逼的话
6.做表单类页面需要注意哪些问题?
答:当时是列举了一些比较泛的方法其实,要了解还是百度一下比较好^_^
面试之外
二面的时候,偷偷看了面试官放在桌面的面试评价,发现每项都是7、8分,其中发展潜力是8分。。。其实我想说,我的发展潜力应该是10分才对吧。。。哈哈~
面试完当晚就收到口头offer、今天收到正式offer了,下周一正式入职。。。
阿里巴巴前端三次面试经历
一面主要问基础,二面才进入项目实习之类的探讨,三面两者都有吧但还是综合多一点。
一面:
这一面持续了47分钟
基本上都能稍微答出来,所以面试官最后说:看你的情况,应该也是了解的,只不过有些核心的点可能没掌握到..还是给你过了吧..
两个小时之后……
不知为何二面忘得太多了..好像大部分都直接扯上项目
——>balabla谈到了遇到的难点,前端构建工具,前端性能等。
——>balabla个人愚见稍微解释了一下,被说接触到的这个太简单了,还有更复杂的。问到这种app和原生app的区别,性能,和发展趋势。
——>balabla说到socket.io这个框架库,之后就围绕展开
就三个问题,跟面试官扯了35分钟,足见我有多啰嗦..
三天之后……
三面:
这次复试官也是一上来就问实习问项目,不过相对于二面,多问了一些其他的知识
——>balabla说是做爬虫抓数据,解释了一通就被问到
——>balabla可以用其他后端语言实现Python,php等等,js原生就用ajax吧
——>balabla扯到了css编写,html结构,资源压缩,文件结构的处置等,然后就被问到
——>balabla说到使用构建工具如grunt,gulp但目前公司使用的是基于fis构建的那个scrat模块化工具进行代码的编写文件结构的处理,自动化工具可以自动地使用一些简单的命令实现诸如文件压缩,文件合并,内容嵌入等等功能。
——>balabla一般就是6个吧,如果的IE6就只有两个了
——>balabla我主要分成了两部分:界面美观方面,站点结构方面。提到了淘宝,然后被问到
——>balabla这应该是按需加载吧(然后又扯到了js按需加载,可惜我还没实践过,乱说一通..)
——>balabla了解php,nodejs应该也属于服务器范畴的后端,数据配合主要是json或xml吧
——>balabla站点N,各好博客N
——>想问一下那边的前后端主要用什么语言,技术?
---我们这里前端主要是html+css+javascript+nodejs,后端主要是java
三面持续了40分钟
百度面试经历
自我介绍
js基本数据类型
如何自己实现一个alert
居中的方法
继承的实现(代码)
ajax原生代码
两栏的实现(响应式的);如何实现拖动鼠标实现一边变大,一边减小。
flex的了解
写一个链式调用;
移动端meta的一些设置
网格的实现方法
盒模型
媒体查询
闭包的概念和作用
项目的难点
自我介绍;
为什么学习前端,怎么学的
三个tab页面,实现代码(我先给出一个一般的代码,后面又给出了优化,总体而言,面试官还是比较满意的)
你的优势,劣势(会让你说一下具体体现)
import和link的区别(说了一下,面试官说,你不了解吧?我,嗯)
性能优化方法(面试官说这些比较旧了,有没有新的方法)
为什么cdn比较快;
对加密算法了解吗,怎样设计一个加密算法
前端的攻击有了解过吗
看过那些书
了解设计模式吗(我说了单例和观察者模式,并写了下代码,介绍有啥作用)
用过哪些自动化构建工具,怎么用的
最近在学什么
有没有写过插件,用js写过什么(然后就是具体描述怎么实现的)
对数据库的了解
三面:
一道算法题;代码实现,让优化(经提醒还是不会优化);
聊对前端的看法
人生规划
为什么选择这所学校
你的优缺点(无论是性格,还是跟其他前端应聘者的相比优势,总共说了5,6点,每一点都有具体事例说明。面试官带着神之微笑说,你还很了解自己的吗!?)