解析:
JavaScript 事件代理则是一种简单的技巧,通过它你可以把事件处理器添加到一个父级
元素上,这样就避免了把事件处理器添加到多个子级元素上。
当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事
件委托给父节点来触发处理函数。这主要得益于浏览器的事件冒泡机制。
事件代理用到了两个在 JavaSciprt 事件中常被忽略的特性:事件冒泡以及目标元素。
function getEventTarget(e) {
e = e || window.event;
return e.target || e.srcElement;
}
解析:
function getProperty(obj, prop) {
if (obj.hasOwnProperty(prop)) {
return obj[prop];
}else if (obj.__proto__ !== null) {
return getProperty(obj.__proto__, prop);
}else{
return undefined;
}
}
解析:
JavaScript 获取当前时间戳:
第一种方法:
var timestamp = Date.parse(new Date());
结果:1280977330000
第二种方法:
var timestamp = (new Date()).valueOf();
结果:1280977330748
第三种方法:
var timestamp=new Date().getTime();
结果:1280977330748
第一种:获取的时间戳是把毫秒改成 000 显示,
第二种和第三种是获取了当前毫秒的时间戳。
用原型链的方式给 Array 对象添加一个数组去重的方法?
解析:
Array.prototype.delRepeat=function() {
//tempRepeat 保存重复数组项
var tempRepeat = [];
var obj = {}; //保存数组中每项,及其出现的次数
//遍历数组
for (var i = 0; i < this.length; i++) {
if (obj[this[i]]) {
if(obj[this[i]]==1) {
tempRepeat.push(this[i]);
obj[this[i]]++;
delete(this[i]);
}
}
else {
obj[this[i]] = 1;
}
}
this.filter(function(){ return true;});
return tempRepeat;
}
var a=[1,3,”eirkgm”,4,6,”eirkgm”,3,3,”eirkgm”,3,3,3,”eirkgm”,4];
alert(a.delRepeat());
定义一个方法,对所有传入的数字参数的第三位小数进行
解析:
四舍五入,使得返回值保留两位小数,不够的补 0