자바스크립트에서 사용하는 함수중 자주 등장하는 친구중 하나는 함수인데,
보통 function 이름 () {}
이렇게 사용하나, 우리가 이 함수안 파라미터 자리에 함수를 집어 넣을때 사용하는 것을 콜백함수라고 한다.
app.get( 어쩌고, function() {
} );
예를 들어서 위 코드처럼 사용할 때가 있는데,
이는 자바스크립트 특성상(Non-blocking때문에) 두개의 함수를 연달아 작성한다고 무조건 두개가 순서대로 실행되는건 아니다.
때문에 어떤 함수들을 순차적으로 사용하고 싶을 때, 이 콜백함수를 이용한다.
app.get( '/write', function( ){ 실행시킬 거 } );
위 코드처럼 사용하면 app.get이후에 파라미터 안의 함수를 바로 실행이 가능하다.
즉, 그냥 순차적으로 함수를 사용하고 싶을 때 콜백함수를 사용한다.
ES6에선 위와 같은 상황에서 더 간단하게 사용할 수 있는 화살표함수
를 제공하는데,
app.get( '/write', ( ) => { 실행시킬 거 } );
위와 같이 function대신에 =>
를 사용하면 된다.
이런 콜백함수를 사용할때는 보통 화살표함수가 더 간단해서 많이 선호된다.
차이점은 간단히 함수 내부에서 this키워드의 값이 바뀌는 것이다.
함수를 만들 때 파라미터 값을 실수로 안넣거나
파라미터에 기본값을 넣을 수 있다.
function sum (a, b = 10){
console.log(a + b)
}
sum(1);
여기서 파라미터를 두개 받기로했는데 하나만 적으면,
b = 10을 해놓아서 11이 출려된다.
default 파라미터를 줄 때는 저렇게 등호로 입력하면 된다.
여기에 b = 2 + a
이렇게 다른 파라미터도 연산 가능 ㅇㅇ
default에 함수도 가능하다.
function f(){
return 10
}
function sum (a, b = f() ){
console.log(a + b)
}
sum(3); // 13
모든 파라미터를 한번에 싸잡아 다루고 싶을 때
arguments
키워드를 활용하면 된다.
function f(a,b,c){
console.log(arguments)
}
f(2,3,4);
이러면 콘솔에는 [2, 3, 4]
가 나온다.
argument는 []
안에 파라미터를 넣어준다.
arguments
랑 비슷한데 ES6부터는 Rest파라미터를 지원해 더 쉽다.
함수를 만들 때 ...
기호를 파라미터 왼쪽에 넣으면
function f(...a) {
console.log(a)
}
f(1, 2, 3, 4, 5, 6, 7);
이러면 모든 파라미터들을 출력해준다.
...파라미터 는 여기에 오는 모든 파라미터를 []
에 넣어준다
그러면 위 코드에서는 [1, 2, 3, 4, 5, 6, 7]
이 출력된다.
근데 rest파라미터라는 뜻대로 나머지 부분에만 사용할 수 있다.
즉, 항상 파라미터가 여러개면?
rest는 항상 마지막에 넣어야한다.
그리고 두개이상 못씀
당연한거임 ㅇㅇ