我们知道浏览器的发展是相对快速的,当然浏览器的不断更新同样面临着前端的更新,在我们前端编程中由于用户所用浏览器的不同,我们是必须要做兼容性处理的,有些浏览器的版本比较低,一些前端语言不兼容,做方法的兼容性处理衡很好的避免Bug的出现。
ES3.0实现数组map方法
var map = Array.prototype.map ? function(a,f){ return a.map(f)} : function(a,f){
var results = [];
for(var i = 0; i < a.length; i ++){
if(i in a){
results[i] = f.call(null,a[i],i,a);
}
} return results;
}
ES3.0实现数组reduce方法
var reduce = Array.prototype.reduce ? fucntion(a,f,initial){
if(arguments.length > 2){
return a.reduce(f,initial);
} else {
return a.reduce(f);
} : function(a,f,initial){
var i = 0, len = a.length, num;
if(arguments.length > 2){
num = initial;
} else{
if(len == 0){
throw TypeError();
}
while(i < len){
if(i in a){
num = a[i++];
break;
} else { i ++;}
} if(i == len){throw TypeError}
}
while(i < len){ if(i in a){ num = f.call(undefined,num,a[i],i,a);} i ++;}
return num;
}
编程过程中懂的一些原理,对自己对代码的理解有很大的好处。帮到你就收藏下吧。