眼看暑假快要结束了,忙碌的面试准备马上要开始了,加油,gogofighting
1. 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)
关键点:target.tagName 组织冒泡事件:e.stopPropagation 或return false;
2.请指出一下代码的性能问题,并进行优化.
var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。";
info +="拍拍网于2005年9月12日上线发布,";
info +="2006年3月13日宣布正式运营,";
info +="是目前国内第二大电子商务平台。";
info=info.split(",");
for(var i=0; i<info.length; i++)
{
alert(info[i]);
}
个人观点: 字符串的累加,+=会先创建一个临时字符串,相加后再赋值给info,每个字符串都会使用一个小的内存片段,过多的内存片段会影响性能。 另外,建议将数组的长度缓存到临时变量里面
3.请给出异步加载js方案,不少于两种。
1.defer属性 只支持IE 2.async属性 HTML5 3.创建script节点
4.请写出绑定事件的方法,不少于两种。
1.$dom.bind("click", function(){}); 2.$dom.click(function(){});
5.请设计一套方案,用于确保页面中加载完全。
在回调里继续加载下一个js直到js加载完
function loadScript(url, callback){
var script = document.createElement_x("script")
script.type = "text/javascript";
if (script.readyState){ //IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" || script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { //Others: Firefox, Safari, Chrome, and Opera
script.onload = function(){
callback();
};
}
script.src = url;
document.body.appendChild(script);
}
6.请优化某网页的加载速度。
1) 静态资源使用cdn加速
2) 使用CSS精灵技术:所有Tenerife图片都是一张大图片,使用CSS控制坐标
3) 合并并且压缩js/css
4) 页面懒加载(类似于音悦台,淘宝)
5) 使用giz压缩文本和图片
7) 使用 Progressive JPEGs:在装入图像时,开始只显示一个模糊的图像,随着数据的装入,图像逐步变得清晰.
7.对string对象进行扩展,使其具有删除前后空格的方法。
String.prototype.trim=function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/