面试题专区:

1.

apply()和call()的区别?

答:call()和apply()的作用只主要是改变this的指向;他们的区别在于参数转递给函数

call():使用自有的实参列表作为函数的参数;

apply():要求以数组的形式转入参数;

 

2.

解释 css  sprite,如何使用----(雪碧图)

定义:它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了(是一种网页图片处理应用的一种方式)

如何使用:把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。

优缺点:优点---(1).减少图片的字节

         (2).家烧网页的HTTP请求,从而大大的提高了页面的性能

        (3).减少命名难的问题

        (4).维护起来更加方便

    缺点---(1):在图片合并的时候,你要把多个图片合理有序的合并成一张图片,还要留好足够空间,防止板块出现不必要的背景

       (2):维护的时候比较麻烦,如果页面背景有少许改动,一般就改这张合并的图片

 

3.

浏览器标椎模型和怪异盒子之间的区别?

首先,两种模式可以利用box-sizing属性的标准模式:

标准模式:box-sizing:content-box;

怪异盒子:box-sizing:border-box;

两种模式的区别:

标准模式会被设置的padding撑开,而怪异盒子则相当于将盒子的大小固定好,再将内容装入盒子。盒子的大小不会被padding所撑开。

标准模式:盒子总宽度/高度=内容区宽度/高度+padding+border+margin。效果:

 怪异盒子:盒子总宽度:width/height+margin。怪异模式下的效果:

 

4.

事件委托:

如今ul里面有十亿个li,要求点击li触发事件,弹出对应li的内容

var ul=document.getelementByTagName("ul")[0];

ul.onclick=function(event){

    event=window || target.event;(兼容IE)

   var target=event.target || event.srcElement;

   console.log(target.innerHTML);

}

 

5.

创建对象的4种方法:

(1):创建对象的字面量方法;

(2):使用new方法创建;

(3):使用构造函数的方式创建对象;

(4):基于原型的方法创建对象;

 

6.

(1)数组的API中可以改变原数组的有:

pop();

push();

reverse();

shift();

sort();

splice();

unshift();

(2)数组的API中可以改变原数组的有:

concat();

join();

slice();

 

7.js中异步加载的3种方法

(1):defer

(2):async

(3):function aasyncScript(url,callback){

var script=document.createElement("script");

  if(script.readystate){

    script.onreadystatechange=function(){(监听状态变化)

      if(script.readystate=="complete" && script.readystate=="loaded"){

    callback()

}

}

}else

script.onload=function(){(onload事件)

callback();

}

}

script.src="test.js";

document.head.appendChild(script)

}

asyncScript("test.js",function(){

    test();

})

8.

什么是默认行为,什么是冒泡,怎么阻止

默认行为:用户某些动作后,标签自动发生的行为

在HTML标签中,有些元素拥有自己的默认行为。

事件冒泡:事件最开始由文档中嵌套最深的节点接受,然后逐级向上传播到较不具体的节点。(如div-body-html-document)

事件捕获:文档中嵌套层次最深的节点最晚接收到事件.(如document-html-body-div)

阻止事件默认行为:preventDefault

阻止事件冒泡stopPropagation