공부/JavaScript
[JavaScript] function(2) - 활용, Arrow Function
한호잉
2022. 1. 17. 14:58
(1) First-class Function
//1, 함수를 변수처럼 처리
const func = function(...args) {
console.log('print func');
for(const arg of args )console.log(arg); //매개변수 인자가 넘어오면 모두 출력
};
//2, 변수에 값으로 할당
const show = func;
show('인자','전달'); // print func, 인자, 전달 출력
func(); // print func 출력

//3, 함수를 다른 함수의 인자(argument)로 사용하여 Callback 처리
function quiz(answer, Yes, No){
if(answer === 'Home'){
Yes(); //console.log('yes func print') 실행하는 함수
} else {
No(); //console.log('no func print') 실행하는 함수
}
}
const printYes = function(){
console.log('yes func print');
}
const printNo = function(){
console.log('no func print');
}
//printYes, printNo 함수를 quiz 함수의 인자 값으로 사용함
quiz('Home', printYes, printNo); //yes func print 출력됨
quiz('no Home', printYes, printNo); // no func print 출력됨
//4, 다른 함수를 함수의 반환 값으로 사용 가능
function outer(){
return function inner(){ 'inner함수 반환값으로 사용' }
}
console.log( outer() ); // f inner(){ 'inner함수 반환값으로 사용' } 출력됨

(2) Arrow Function (=> 함수) 기본 형태
//1. 기본 표현법
const arrowEx = function() {
console.log('Basic Function Example');
}
//=> 변경
const arrowEx = () =>
console.log('arrow Function One');
//=> 변경 대괄호 사용
const arrowEx = () => {
console.log('arrow Function Two');
}
(2)-1 Arrow Function (=> 함수) 파라미터 전달
<script>
// 파라미터가 1개인 경우
const paramOne = a =>
console.log(a);
paramOne('파라미터 1개 전달');
// 파라미터 2개 전달
const paramTwo = (a, b) =>
console.log( a+b );
paramTwo(5,10);
</script>
*함수 내의 코드가 한줄이면 return 생략*