函数表达式
所谓函数表达式 就是 将函数赋值给一个变量,通过变量完成函数 的调用和参数的传递。
var fn = function sum(num1,num2){
return num1+num2;
};
fn();//调用
匿名函数
1函数表达式中省略函数名
var fn = function (num1,num2){
return num1+num2;
};
fn(1,2);//调用
2自调用方式
(function (num1,num2){
return num1+num2;
})(2,3)
3处理事件
document.body.onclick = function(){
alert('hi');
};
箭头函数
参数(p1,p2...pn)=>{statement}函数体
参数可以有多个 一个或者没有,没有用()或者-表示;
函数体 只能用一条语句
var f1 = x=>x+2;//一个参数
var f2 =(x,y)=>x+y;//两个参数
console.log(f1(4));
console.log(f2(4,4));
回调函数
一个函数 A作为参数传递给函数B,在B的函数体内部调用函数A,我们就称A为回调函数。
匿名函数常作为函数的参数传递,实现回调函数
javaScript为数组提供了回调函数,常用如下
项目 | Value |
---|---|
array.find(function(currentValue, index, arr),thisValue) | 返回数组中满足回调函数的第一个元素的值,否则返回undefined。当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined。 |
array.every(function(currentValue,index,arr), thisValue) | 测试数组的所有元素是否都通过了回调函数的测试,如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。 |
array.some(function(currentValue,index,arr),thisValue) | 测试数组中的某些元素是否通过由回调函数实现的测试 ,如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false |
array.forEach(function(currentValue, index, arr), thisValue) | 对数组的每个元素执行一次提供的函数,返回值未undefined |
array.map(function(currentValue,index,arr), thisValue) | 创建一个新数组,其结果是该数组中的每个元素都调用一次提供的回调函数后返回的结果。 |
array.reduce(function(total, currentValue, currentIndex, arr), initialValue) | 对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。 |
array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue) | 接收一个函数作为累加器(accumulator)和数组的每个值(从右到左)将其减少为单个值。reduceRight() 方法的功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。 |