总结
1.箭头函数和普通函数的区别
箭头函数是匿名函数,不能作为构造函数,不能使用new
箭头函数不绑定arguments,取而代之用rest参数...解决
箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值
箭头函数没有原型属性
2.数组去重
var newArray = []; function uniq(array){ for(var i=0;i<array.length;i++){ if(newArray.indexOf(array[i])<=-1){ newArray.push(array[i]) } } return newArray; } var arr = [1,2,3,4,21,3,5,2,1,2,43,23] console.log('第一种去重方法'+uniq(arr).toString()) function uniq2(array){ array.sort(); let arrayNew = [array[0]]; for (var i=1;i<array.length;i++) { if(array[i] !== arrayNew[arrayNew.length -1 ]){ arrayNew.push(array[i]) } } return arrayNew; } console.log("第二种去重方法"+uniq2(arr).toString()) function uniq3(array) { var newArray3 = []; for(var i=0;i<array.length;i++){ if(array.indexOf(array[i])=== i){ newArray3.push(array[i]) } } return newArray3; } console.log("第三种去重方法"+uniq3(arr).toString())
3.深拷贝和浅拷贝
就是假设B复制了A,
当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,
如果B没变,那就是深拷贝,自食其力。
function deepclone(obj){
var newobj = JSON.stringify(obj)
var cloneobj = JSON.prase(newobj)
return cloneobj
}
还可以用extend方法 依赖与jquery
$.extend([deep],target,object1,........)
b=$.extend(true,[],a)