1.栅格系统为什么是12格?
因为12是1,2,3,4,6的最小公倍数,所以12列的栅格系统较为灵活,支持将一行分为1列,2列,3列,4列,6列,能够支持大多数的布局要求。
2.说一下ajax
ajax作用:可以在用户浏览网页的同时与服务器进行异步交互和实现网页内容的局部刷新
核心:程序不通过浏览器发出请求,而是调用JS中的类XMLHttpRequest对象来发送请求,再由这个JS对象接收响应,并将响应页面结果用DOM编程方式挂到原来的网页上
基本流程:
XMLHttpRequest对象初始化 -> 指定响应处理函数 -> 发送http请求 -> 处理服务器返回信息
3.深拷贝与浅拷贝
4.JS性能优化
(1)减少http请求次数:CSS Sprites,JS,CSS源码压缩、图片大小控制合适,网页Gzip、CDN托管,data缓存,图片服务器
(2)前端模板JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX的请求结果,每次操作本地变量,不用请求,减少请求次数
(3)用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能。
(4)当需要设置的样式很多时设置className而不是直接操作style
(5)少用全局变量、缓存DOM节点查找的结果,减少IO读取操作。
(6)避免使用CSS表达式
(7)图片预加载,将样式表放在顶部,将脚本放在底部,加上时间戳
(8)避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css慢
5.阻止事件冒泡
w3c: e.stopPropagation
IE: e.cancelBubble = true
6.事件捕获
简单来说,事件捕获就是从外层元素到内层元素的过程
7.有哪些事件
事件:可以被JavaScript侦测到的行为
种类:鼠标事件、键盘事件、HTML事件