First-Class Functions(頭等函數(shù))
-
函數(shù)享有與變量同等的待遇
- 可被賦值給變量爷贫、數(shù)列元素和對(duì)象屬性
- 可作為參數(shù)傳遞給其他函數(shù)
- 可被函數(shù)作為返回值
-
允許聲明高階函數(shù)(higher-order function)
- 接受函數(shù)作為參數(shù)或者返回函數(shù)的函數(shù)為高階函數(shù)感局,如
map()
,filter()
,reduce()
- 接受函數(shù)作為參數(shù)或者返回函數(shù)的函數(shù)為高階函數(shù)感局,如
map()
函數(shù)
const arr = [0,1,2,3];
function add(num) {
return num+=1; //or ++num, or else num++ returns num before adding 1
}
arr.map(a => add(a)); //[1,2,3,4]
-
filter()
函數(shù)
const arr = [0,1,2,3];
function isGreaterThanOne(num) {
return num > 1;
}
console.log(isGreaterThanOne(2)); // true
arr.filter(a => isGreaterThanOne(a)); // [2,3]
- reduce()函數(shù)
const arr = [0,1,2,3];
const reducer = function(a,b) {
return a + b;
};
console.log(reducer(1,2)); // 3
arr.reduce(reducer,10); //16