项目不忙的时候,写一些js的方法来稳固一下基础,也便于以后来查询。
1.js闭包
// 闭包的理解,
// 1.其实就是实现访问功函数内部的局部变量2.其中函数内部的内存不会被垃圾机制回收(garbage collection)
// 例1:
// function f1() {
// var n = 99;
// setter = function () {
// n += 1;
// }
// function f2() {
// console.log(n)
// }
// return f2;
// }
// f1()(); 99
// 即嵌套函数就可以实现访问函数内部的局部变量
// 例2:在调用f2一次之后,调用setter函数就会使n的值发生改变
// var result = f1();
// result(); //99
// setter();
// result(); //100
// ps:注意必须要把f1存储在全局变量中,这样变量才能发生改变,不然访问的还是f1;
// 例如
// // f1()(); 99
// // setter();
// // f1()()99
2.js去重
// 1.直接遍历
var arr = [1,2,3,3,5,5,5,9];
// function unique(array){
// var result =[];
// array.forEach(element => {
// if(result.indexOf(element)===-1){
// result.push(element)
// }
// });
// return result;
// }
// console.log(unique(arr))
//2.es6set
// console.log([...new Set(arr)]);
// console.log(Array.from(new Set(arr)));
// 3.filter
// var result = arr.filter(function(item,index) {
// return arr.indexOf(item)===index;
// })
// console.log(result)
console.log(arr.indexOf(3))