1. HTML5新增了哪些新特性和标签?

  2. CSS3有哪些新特性?

  3. 列举你所知道的行内元素有哪些?块级元素有哪些? CSS的盒模型?

  4. 介绍所知道的CSS hack技巧。

  5. 常见的兼容性问题有哪些?

  6. 常使用的JS类库有哪些? 是否进行过插件开发?

  7. 若使用过Jquery,如何添加,删除,替换节点?

  8. JS中的事件是指什么IE与火狐的事件机制有什么区别? 如何阻止冒泡?

  9. 是否做过后台接口调用处理等操作?对Json有多少了解?

  10. 介绍一下XMLHttpRequest什么?该对象的常用方法和属性有哪些?

  11. jquery 中如何将数组转化为json字符串,然后再转化回来?

  12. Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?

  13. ajax是什么? ajax的交互模型(流程)? 同步和异步的区别?

  14. 如何解决跨域问题?

  15. 什么是闭包? 闭包主要涉及到js的哪些特性

  16. 你有哪些性能优化的方法?

 

参考答案如下:

  1. HTML5新增了哪些新特性和标签?

答:

a) 绘画 canvas标签

  b) 用于媒介回放的 video 和 audio 元素

  c) 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;

  d) sessionStorage 的数据在浏览器关闭后自动删除

e) 语意化更好的内容元素,比如 article、footer、header、nav、section

  f) 表单控件,calendar、date、time、email、url、search

  1. 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等。

  1. 列举你所知道的行内元素有哪些?块级元素有哪些? 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)组成。

  1. 介绍所知道的CSS hack技巧。

答:

IE都能识别*;标准浏览器(如FF)不能识别*;
IE6能识别*,但不能识别 !important,
IE7能识别*,也能识别!important;
FF不能识别*,但能识别!important;

IE6支持下划线,IE7和firefox均不支持下划线。

  1. 常见的兼容性问题有哪些?

例如:

a) png24位的图片在iE6浏览器上出现背景:解决方案是做成PNG8.

b) 浏览器默认的margin和padding不同:解决方案是加一个全局的{margin:0;padding:0;}来统一。

c) IE6种浮动产生的双倍边距问题:解决方案是在float的标签样式控制中加入 _display:inline;将其转化为行内属性。(_这个符号只有ie6会识别)

  1. 常使用的JS类库有哪些? 是否进行过插件开发?
    答:最常用的库:Jquery ,YUI等。
  2. 若使用过Jquery,如何添加,删除,替换节点?

答:obj.appendChild  obj.removeChild   obj.replaceChild

  1. JS中的事件是指什么IE与火狐的事件机制有什么区别? 如何阻止冒泡?

a) 我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被 JavaScript 侦测到的行为。

b) 事件处理机制:IE是事件冒泡、火狐是事件捕获;  

c) ev.stopPropagation()适用于火狐等浏览器 ; cancelBubble()只支持IE浏览器。

  1. 是否做过后台接口调用处理等操作?对Json有多少了解?

答:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小。

  1. 介绍一下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

  1. jquery 中如何将数组转化为json字符串,然后再转化回来?

答:

$.fn.stringifyArray = function(array) {

      return JSON.stringify(array)

  }

 

  $.fn.parseArray = function(array) {

      return JSON.parse(array)

 }

  1. Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?

答:hasOwnProperty

  1. ajax是什么? ajax的交互模型(流程)? 同步和异步的区别?

答:

a)ajax是异步的 JavaScript 和 XML。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

b)   1--启动  获取XMlHttpRequest对象
    2--open 打开url通道,并设置异步传输 
    3--send 发送数据到服务器
    4--服务器接受数据并处理,处理完成后返回结果 
    5--客户端接收服务器端返回

c)同步:脚本会停留并等待服务器发送回复然后再继续.

异步:脚本允许页面继续其进程并处理可能的回复.

  1. 如何解决跨域问题?

答:几个可行的方案:

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网站页面间的交互能力增强了。最重要的一点,这种方案满足了我们的全部需要。

  1. 什么是闭包? 闭包主要涉及到js的哪些特性

答:

a) 能够读取其他函数内部变量的函数.(闭包定义大体理解对即可)

b) 作用域链,垃圾(内存)回收机制,函数嵌套等

  1. 你有哪些性能优化的方法?

答: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布局慢。

posted on 2017-07-27 15:12  angelfinding  阅读(240)  评论(0编辑  收藏  举报