-
HTML5新增了哪些新特性和标签?
-
CSS3有哪些新特性?
-
列举你所知道的行内元素有哪些?块级元素有哪些? CSS的盒模型?
-
介绍所知道的CSS hack技巧。
-
常见的兼容性问题有哪些?
-
常使用的JS类库有哪些? 是否进行过插件开发?
-
若使用过Jquery,如何添加,删除,替换节点?
-
JS中的事件是指什么?IE与火狐的事件机制有什么区别? 如何阻止冒泡?
-
是否做过后台接口调用处理等操作?对Json有多少了解?
-
介绍一下XMLHttpRequest是指什么?该对象的常用方法和属性有哪些?
-
jquery 中如何将数组转化为json字符串,然后再转化回来?
-
Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
-
ajax是什么? ajax的交互模型(流程)? 同步和异步的区别?
-
如何解决跨域问题?
-
什么是闭包? 闭包主要涉及到js的哪些特性?
-
你有哪些性能优化的方法?
参考答案如下:
- HTML5新增了哪些新特性和标签?
答:
a) 绘画 canvas标签
b) 用于媒介回放的 video 和 audio 元素
c) 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
d) sessionStorage 的数据在浏览器关闭后自动删除
e) 语意化更好的内容元素,比如 article、footer、header、nav、section
f) 表单控件,calendar、date、time、email、url、search
- CSS3有哪些新特性?
答:
a) CSS3实现圆角(border-radius:8px)
b) 阴影(box-shadow:10px)
c) 对文字加特效(text-shadow、)
d) 线性渐变(gradient)
e) 旋转(transform)
transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);
//旋转,缩放,定位,倾斜
f) 增加了更多的CSS选择器,多背景rgba等。
- 列举你所知道的行内元素有哪些?块级元素有哪些? CSS的盒模型?
答:
行内元素span,a,var ,em,input,img,img,textarea,var,em,strong,select等。
块级标签:div,p,h1-h3,ul,ol,dl,li,dd,dt,table,td,tr等。
CSS盒模型:页面上的块级元素被看做是一个矩形框,这个框由元素的内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。
- 介绍所知道的CSS hack技巧。
答:
IE都能识别*;标准浏览器(如FF)不能识别*;
IE6能识别*,但不能识别 !important,
IE7能识别*,也能识别!important;
FF不能识别*,但能识别!important;
IE6支持下划线,IE7和firefox均不支持下划线。
- 常见的兼容性问题有哪些?
例如:
a) png24位的图片在iE6浏览器上出现背景:解决方案是做成PNG8.
b) 浏览器默认的margin和padding不同:解决方案是加一个全局的{margin:0;padding:0;}来统一。
c) IE6种浮动产生的双倍边距问题:解决方案是在float的标签样式控制中加入 _display:inline;将其转化为行内属性。(_这个符号只有ie6会识别)
- 常使用的JS类库有哪些? 是否进行过插件开发?
答:最常用的库:Jquery ,YUI等。 - 若使用过Jquery,如何添加,删除,替换节点?
答:obj.appendChild , obj.removeChild , obj.replaceChild
- JS中的事件是指什么?IE与火狐的事件机制有什么区别? 如何阻止冒泡?
a) 我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被 JavaScript 侦测到的行为。
b) 事件处理机制:IE是事件冒泡、火狐是事件捕获;
c) ev.stopPropagation()适用于火狐等浏览器 ; cancelBubble()只支持IE浏览器。
- 是否做过后台接口调用处理等操作?对Json有多少了解?
答:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小。
- 介绍一下XMLHttpRequest是指什么?该对象的常用方法和属性有哪些?
答:
a) XMLHttpRequest 对象提供了在网页加载后与服务器进行通信的方法。
b) open(“method”,”URL”) 建立对服务器的调用:
第一个参数是HTTP请求,方式可以为GET,POST或任何服务器所支持的您想调用的方式。
第二个参数是请求页面的URL。
send()方法,发送具体请求
abort()方法,停止当前请求
readyState属性 请求的状态 有5个可取值0=未初始化 ,1=正在加载
2=以加载,3=交互中,4=完成
responseText 属性 服务器的响应,表示为一个串
reponseXML 属性 服务器的响应,表示为XML
status 服务器的HTTP状态码,200对应ok 400对应not found
- jquery 中如何将数组转化为json字符串,然后再转化回来?
答:
$.fn.stringifyArray = function(array) {
return JSON.stringify(array)
}
$.fn.parseArray = function(array) {
return JSON.parse(array)
}
- Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
答:hasOwnProperty
- ajax是什么? ajax的交互模型(流程)? 同步和异步的区别?
答:
a)ajax是异步的 JavaScript 和 XML。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
b) 1--启动 获取XMlHttpRequest对象
2--open 打开url通道,并设置异步传输
3--send 发送数据到服务器
4--服务器接受数据并处理,处理完成后返回结果
5--客户端接收服务器端返回
c)同步:脚本会停留并等待服务器发送回复然后再继续.
异步:脚本允许页面继续其进程并处理可能的回复.
- 如何解决跨域问题?
答:几个可行的方案:
1、Web代理的方式。即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面,由该页面代替用户页面完成交互,从而返回合适的结果。此方案可以解决现阶段所能够想到的多数跨域访问问题,但要求A网站提供Web代理的支持,因此A网站与B网站之间必须是紧密协作的,且每次交互过程,A网站的服务器负担增加,且无法代用户保存session状态。
2、on-Demand方式。动态控制script标记的生成,通过修改script标记的src属性完成对跨域页面的调用。此方案存在的缺陷是,script的src属性完成该调用时采取的方式是get方式,如果请求时传递的字符串过大时,可能会无法正常运行。不过此方案非常适合聚合类门户使用。
3、iframe方式。数据提交跟获取,采用iframe这种方式的确可以了,但由于父窗口与子窗口之间不能交互(跨域访问的情况下,这种交互被拒绝),因此无法完成对父窗口效果的影响。
4、用户本地转储方式:IE本身依附于windows平台的特性为我们提供了一种基于iframe,利用内存来“绕行”的方案,即两个window之间可以在客户端通过windows剪贴板的方式进行数据传输,只需要在接受数据的一方设置Interval进行轮询,获得结果后清除Interval即可。FF的平台独立性决定了它不支持剪贴板这种方式,而以往版本的FF中存在的插件漏洞又被fixed了,所以FF无法通过内存来完成暗渡陈仓。而由于文件操作FF也没有提供支持(无法通过Cookie跨域完成数据传递),致使这种技巧性的方式只能在IE中使用。
5、结合了前面几种方式,在访问A网站时,先请求B网站完成数据处理,再根据返回的标识来获得所需的结果。这种方法的缺点也很明显,B网站的负载增大了。优点,对session也实现了保持,同时A网站与B网站页面间的交互能力增强了。最重要的一点,这种方案满足了我们的全部需要。
- 什么是闭包? 闭包主要涉及到js的哪些特性?
答:
a) 能够读取其他函数内部变量的函数.(闭包定义大体理解对即可)
b) 作用域链,垃圾(内存)回收机制,函数嵌套等
- 你有哪些性能优化的方法?
答:(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 Expression(css表达式)又称Dynamic properties(动态属性)。(7) 图片预加载,将样式表放在顶部,将脚本放在底部,加上时间戳。(8) 避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢。