1.JQuery是怎么绑定事件的?
答:jQuery中绑定事件有三种方法:以click事件为例
(1)target.click(function(){});
(2)target.bind(“click”,function(){});
(3)target.live(“click”,function(){});
2.如何实现js的模块化编程?
答:JS模块化开发,目前有很多框架可供选择。比如 SeaJS是国人写的基于CommonJS规范的javascript模块管理工具。
3.有用到过H5吗?
答:请参考html5新增的一些特性及元素回答。
4.有没有做过Web离线应用?
答:这个主要考察离线资源存储,在线状态监测,本地数据存储这几个方面,涉及到Web Storage”(Web 存储)API和离线存储HTML5 Web SQL Database。
5.说一下你印象最深个项目,遇到的难点及解决方法?
答:
6.你是怎么处理浏览器之间的兼容性问题的?
答:采用优雅降级方法,在谷歌浏览器上面最好了比较好的版本,然后再针对IE等浏览器写一些hack。如果涉及手机端的话,还会用@media做一些响应式的处理。例如…(又举例子)
7.为什么要学学习这些js框架(angular、node、react)?
答:因为这些现在已经是前端的标配啦,前端发展地非常快,而且是往全栈方向发展的。
8.怎样把一些内容加到页面上?
答:这个分情况吧,例如一些弹框提示的话,就是事先已经知道内容,类似于弹出登陆框的话,就先在页面上写好,调整好位置,然后隐藏,点击某个地方在fadeOut出来那样,如果是那种列表数据渲染的话,就写成一个template,通过ajax等方式拿到数据渲染好之后,再append到相应的位置。(好像还说了一些其他的我自己也忘了)
9.怎样提高页面性能?
答:其实我就回答了一些基本上大家都会采用的提高性能的方法,例如较少页面的http请求数,css属性合写,js代码抽象和封装,模块化开发,组件化等等……反正就说了一大堆。
10.怎么处理浏览器缓存问题?(这个问题好像面试官经常问)
答:可以在修改后的文件末加一个版本号,还可以用gulp配置自动更新版本号。
11.如果修改的文件很多呢?
答:(其实我已经回答过了,估计是面试官没有听到)所以可以用gulp自动化工具去配置自动更新修改了的文件的版本号啊,这样就不用手动添加了。
12.boostrap的设计理念是怎样的?
答:(说真的,没想过这个问题,但是我知道核心是栅格布局)我觉得boostrap的核心就是栅格布局,这个框架做了很多兼容性、响应式的处理,我也研究css的部分源码,例如……(又是举例子),然后我觉得这个一个非常好用,非常值得学习的框架。
13.如果你学的这些框架,来我们这里用不上,这里比较偏后台一点,你怎么看?
答:前端也有后台,例如node.js就是,语言的核心思想都差不多,就是mvc,mvvn等等……又说了一堆装逼的话
14.做表单类页面需要注意哪些问题?
答:我感觉最主要就是要提高用户体验,用js对表单输入的内容进行判断,然后快速反馈用户的输入是有效的还是无效的吧,例如,手机号码、邮箱等等的验证。
15.怎样减少首屏加载时间?