fa
slice:
slice()
是一个用于提取数组的一部分的方法。它可以接受两个参数,即起始索引和结束索引(可选)
const array = [1, 2, 3, 4, 5];
// 提取从索引2到索引4之间的元素
const slicedArray = array.slice(2, 4);
console.log(slicedArray); // 输出:[3, 4]
// 提取从索引2到数组末尾的所有元素
const slicedArray = array.slice(2);
console.log(slicedArray); // 输出:[3, 4, 5]
foreach :
[ ].forEach(function(value,index,array){
//code something
});
//forEach()方法对数组的每个元素执行一次提供的函数。
//forEach方法中的function回调有三个参数:
//第一个参数是遍历的数组内容,
//第二个参数是对应的数组索引,
//第三个参数是数组本身
//forEach不支持break,会报错
//forEach中使用return无效,但不会报错
//如果要用return返回某个值,那就只能将return操作放在函数中,而不是forEach循环中,像这样:
function find(array, num) {
let _index;
array.forEach((self, index) => {
if (self === num) {
_index = index;
};
});
return _index;
};
闭包:
var md5 = function(){
function abc() {
return zby++;
}
//假设有多个函数
function test() {
return zby--;
}
var zby = 200;
return {
a: test;
b: abc
}
//return abc;
}(); //多加一个括号 代表已经执行完了
md5(); //正常来说 如果运行到这里 上面的abc等 已经运行完并被销毁了, 但这个没有 abc的局部引用已经给了md5
//闭包可以控制一些 作用域 防止重名 abc和zby都属于局部变量 不能被调用
//作用: 里面的局部变量 外面可以通过一定的方法去调用
var = 200;
function test() {
var a = 100;
return function() {return a;}
};
abc = test();
alert(abc); //弹出的是function() {return a;}
alert(abc)(); //弹出的是100, 而不是200