发表于: 2017-03-12 02:39:30
1 1307
今天完成的事情:
看了几章忍者书;
完成了两个vue的组件;
刷了一些面试题;
明天计划的事情:
继续忍者书;
遇到的问题:
收获:
函数的前置参数对于后面的默认参数是可见的
忍者书里的一个重载:
function addMethod(object,name,fn){
var old=object[name];
object[name]=function(){
if (fn.length==arguments.length){
return fn.apply(this,arguments);
}else if(typeof old == 'function'){
return old.apply(this.arguments);
}
}
}
利用闭包链能够一直找到头或者实际参数数量和声明数量相等的一个函数……
1.function的参数也被包含在闭包之中。
2.所有的外部变量都属于闭包可以访问的范围,包括那些在闭包后面创建出来的变量。
3.在同一个域中,不可以访问后面才创建的变量。
小写转换成大写数字的算法:
var transform=function(input){
var UPERCASE=['零','一','二','三','四','五','六','七','八','九']
var arr=input.toString();
for(var i=0;i<arr.length;i++){
var num=arr.slice(i,i+1);
arr=arr.replace(arr[i],UPERCASE[num]);
}
return arr;
}
数组去重:
var arr=['a','b','c','c','d','d','e','f'];
var unique = function (arr){
var arr2=[];
arr2.push(arr[0]);
for(var i=1;i<arr.length;i++){
var flag=false;
arr2.forEach(function (item,index,array) {
if(item===arr[i]){
flag=true;
return;
}
});
if(!flag){
arr2.push(arr[i]);
}
}
return arr2;
}
评论