javascript function

jangdu·2023년 3월 19일
0

javascript

목록 보기
5/16

콜백함수

자바스크립트에서 사용하는 함수중 자주 등장하는 친구중 하나는 함수인데,
보통 function 이름 () {}이렇게 사용하나, 우리가 이 함수안 파라미터 자리에 함수를 집어 넣을때 사용하는 것을 콜백함수라고 한다.

app.get( 어쩌고, function() {
  
} );

예를 들어서 위 코드처럼 사용할 때가 있는데,
이는 자바스크립트 특성상(Non-blocking때문에) 두개의 함수를 연달아 작성한다고 무조건 두개가 순서대로 실행되는건 아니다.

때문에 어떤 함수들을 순차적으로 사용하고 싶을 때, 이 콜백함수를 이용한다.

app.get( '/write', function( ){ 실행시킬 거 } );

위 코드처럼 사용하면 app.get이후에 파라미터 안의 함수를 바로 실행이 가능하다.

즉, 그냥 순차적으로 함수를 사용하고 싶을 때 콜백함수를 사용한다.

ES6에선 위와 같은 상황에서 더 간단하게 사용할 수 있는 화살표함수를 제공하는데,

app.get( '/write', ( ) => { 실행시킬 거 } );

위와 같이 function대신에 =>를 사용하면 된다.
이런 콜백함수를 사용할때는 보통 화살표함수가 더 간단해서 많이 선호된다.

차이점은 간단히 함수 내부에서 this키워드의 값이 바뀌는 것이다.


함수에 default 파라미터

함수를 만들 때 파라미터 값을 실수로 안넣거나
파라미터에 기본값을 넣을 수 있다.

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

모든 파라미터를 한번에 싸잡아 다루고 싶을 때
arguments키워드를 활용하면 된다.

function f(a,b,c){
  console.log(arguments)
}

f(2,3,4);

이러면 콘솔에는 [2, 3, 4]가 나온다.
argument는 []안에 파라미터를 넣어준다.

Rest 파라미터

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는 항상 마지막에 넣어야한다.
그리고 두개이상 못씀
당연한거임 ㅇㅇ

profile
대충적음 전부 나만 볼래

0개의 댓글