const a = function (el) {
return el * el;
}
2. 다른 함수의 전달인자(agurement)로 전달 가능 - 콜백함수
function num(el){
return el * el;
};
function newNum(func, el1) {
return func(el1);
}
let result = newNum(num, 5); // 25
3. 다른 함수의 결과로서 리턴 가능
function add(num1){
return function (num){
return num1 + num2;
}
}
add(1)(2); // 3
const a = function (el) {
return el * el;
}
function double(num){
return num * 2;
}
function doubleNum(func, num) {
return func(num);
}
let result = doubleNum(double, 9); // 18
function adder(added) {
return function (num) {
return num + added;
};
}
// adder(5)는 함수기 때문에 '()' 사용 가능
let output = adder(5)(3); // -> 8
console.log(output); // -> 8
// adder가 리턴하는 함수를 변수에 저장 가능
const add3 = adder(3);
output = add3(2);
console.log(output); // -> 5
function double(num) {
return num * 2;
}
function doubleAdder(added, func) {
const doubled = func(added);
return function (num) {
return num + doubled;
};
}
// doubleAdder(5, double)는 함수이므로 함수 호출 기호 '()'를 사용가능
doubleAdder(5, double)(3); // -> 13
// doubleAdder가 리턴하는 함수를 변수에 저장할 수 있습니다. (일급 객체)
const addTwice3 = doubleAdder(3, double);
addTwice3(2); // --> 8
function obj(arr) {
return arr.filter(function (el) {
if(el.length % 2 === 1) {
return true;
} return false;
});
}
let a = obj(['hi','now','good','there']);
console.log(a) // ['now', 'there']
ffunction obj(arr) {
return arr.map(function (el) {
return el * 2
})
}
let a = obj([1,2,3,4]);
console.log(a) // [2,4,6,8]
function obj(arr) {
return arr.reduce(function (acc, cur) {
return acc + cur
}, 0)
}
let a = obj([1,2,3]);
console.log(a)