面试题专区:
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