箭头函数
1.1 认识箭头函数
传统定义函数:
const aaa = function(parse) {
}
对象字面量中定义函数:
const obj = {
bbb(parse) {
}
}
Es6中箭头函数;
const ccc = ()=>{
}
箭头函数的参数和返回值
- 参数问题:
- 放入两个参数:
const obj = (num1, num2) => { return num1 + num2; }
- 放入一个参数括号可以省略
const power = num => { return num * num; }
函数内部
- 函数中代码块有多行代码:
const aaa = () => {
console.log('1');
console.log('2');
}
- 函数中只有一行代码可以省略return
const mul = (num1, num2) => num1 * num2;
console.log(mul);
箭头函数中this使用
- 什么时候使用箭头函数
setTimeout(function(){
console.log(this);
}, 1000);
setTimeout(() => {
console.log(this);
}, 1000);
结论:箭头函数没有this,上面箭头函数中的this是window中的this
const obj = {
aaa() {
setTimeout(() => {
console.log(this);
}, 1000),
setTimeout(function() {
console.log(this);
}, 1000)
}
}
console.log(obj.aaa())
结论:第一个this是obj中的this,第二个this是windows中的this。
高阶函数
1. filter过滤函数
const num = [2,5,9,8,7,4,1,2,5,6,22,55];
let newNum = num.filter(function(item) {
return item>10;
})
console.log(newNum);
2. map过滤函数
const num = [2,5,9,8,7,4,1,2,5,6,22,55];
let newNum = num.map(function(item) {
return item * 10;
})
console.log(newNum);
3. reduce过滤函数
const num = [2,5,9,8,7,4,1,2,5,6,22,55];
let newNum = num.reduce(function(prevalue, value) {
return value + prevalue;
}, 0)
console.log(newNum);
三个综合使用
let n = num.filter(num => num > 50).map(num => num * 2).reduce((preValue,currentValue) => preValue + currentValue)
console.log(n);