昨天去京东面试了一下前端.可惜没有面试成功.回来根据回忆把这次失败的经历记录下来,来让自己静下心.也可以成为别人的面试参考.
首先介绍一下我的整个面试过程下来对京东前端技术这部分的映象.在面试过程中我了解到京东的后台是用java写的,而且前后端并未实现分离,所以要想去京东面试,必须对java有一定的了解,以及java写前端的一些框架比如:SSH.以及mvc框架的实现原理和机制,这块内容虽然并未在招聘上面写明,不过如果你会这方面的内容,是一个很好很强大的加分项.
其实面试的时候的提问无非就是一些基本的html知识,和css的一些知识,然后就是js的一些基本点,和难点.
第一部分:css
在面试之前,我以为面试css会从盒模型,position和float之间的影响,动画,或者一些兼容情况来给你出难题让你来解决.但是实际情况问得都是最基本的.我记忆中,css部分问得比较少,几个方面如下:
1:css可以在html中写吗?
这个就算是最最基础的问题了,一般做前端的人都了解,在html中可以写在内联样式中(style).或者直接link引入css文件.还有一个import.有的同学可能没有听说过@import,平时只用过link.其实@import确实是不被推荐使用的,因为在一些浏览器中会有兼容性问题,比如ie5;另一个原因:link是xhtml标签啊,除了能引入css样式文件之外,还能定义RSS,rel等,功能很强大的;最后一个原因:在加载网页的时候link是随着网页的加载同步进行的,而@import是网页加载完毕之后进行的.对用户体验差别很大的.
2:css的优先级.
这个也简单,!important>内联样式>外联样式(id>class>tag);
3:css优化有几种方式.
这个问题在实际项目中其实是处理过的,但是回答的时候,不知道怎么去表达.回来之后,我从网上查找相关资料,先总结如下:
第一点:从实际出发,从用户角度出发.如果一些很炫的技术,在实际用户体验时并不好,或者根本不需要.那么还是舍去比较好一点.
第二点:提高css的加载性能.
严格让样式和结构分离,也就是说在head中引入css,不要写内联样式.减小css文件的大小,尽可能利用html缓存.也可以对css进行压缩来减少它的体积(这个应该是常用的).能用一句话解决的样式就不要多写.
第三点:合理使用选择器
尽量不要使用通配符选择器.
*{}
能继承的属性就不要再在子元素中重复书写了.能继承的属性如下:
font-size font-family color, UL LI DL DD DT;
不能继承的属性如下:
border padding margin width height ;
第四点:提高渲染性能
对与浮动和定位要考虑再三之后再使用.最好有css书写规范.
关于位置的css尽量放在最前面,之后是大小,文字,背景边框,等.
第五点:要利于后期的维护.
第二部分:html
1.平时用到html5的那些特性.
我平是用到的最多的其实就是新的标签和语义化了.在html5的规范中,其实对行内元素和快级元素的分类已经弱化了.或者说没有了.平时用到的语义化标签如下:
块引用