学习笔记的一部分,这里有封装type辨别变量类型,还有数组去重。
其他学习笔记后续会有更新,感兴趣的话可以联系小编,小编把自己的学习笔记分享给大家,供大家学习。
封装type 辨别变量类型
function type(target){
var ret = typeof(target) ;
var template = {
'[object Array]' : 'array',
'[object Object]' : 'object',
'[object String]' : 'string - object',
'[object Number]' : 'Number - object',
'[object Boolean]': 'Boolean - object',
}
if(target === null){ //判断类型是否为null
return 'null';
}
if(ret == 'object'){ //首先判断是否是object
var str = Object.prototype.toString.call(target); //然后使用最高的父类中的toString方法,call指向传入的对象,输出结果
return template[str]; //比对结果并返回;
}else {
return ret;
}
}
数组去重
在原型链上去重
Array.prototype.unique = function () {
var temp ={}; //定义空对象
arr=[]; //定义空数组
len = this.length; //数组长度
for (var i = 0; i< len ; i++){
if(!temp[this[i]]){ //如果没有对应的
temp[this[i]] = "abc"; //添加一个属性值为“abc”,如果不填abc,而填原来数组本身的值this[i]的话会出现数组中0无法去重
//原理 temp[0]=0 为 否 在加一个! 为正
//所以会使得数组中0无法去重
arr.push(this[i]); //放入去重后的值
}
}
return arr;
}