[2022.10.26] 함수(2) - 함수의 호출

Reyna·2022년 10월 25일
0

TIL

목록 보기
12/16

함수의 호출

함수를 가리키는 식별자 (인수1, 인수2)의 형태로 함수를 호출 할 수 있다.

  1. 함수가 호출된다.

  2. 함수 몸체 내에서 매개변수가 생성되고 undefined로 초기화된다.

  3. 매개변수에 인수가 순서대로 할당된다.

인수의 조건

  • 인수는 값으로 평가될 수 있는 표현식이어야 한다.

매개변수와 인수 개수가 다를 경우?

1 . 매개변수 개수 > 인수 개수

  • 인수가 부족하면 undefined로 초기화된 상태 그대로 실행되게 된다.
function add(x,y) {
  return x + y;
}

console.log((5)); 
//5 + undefined => NaN

2. 매개변수 개수 < 인수 개수

  • 인수가 남으면 무시한다!
  • 남은 인수는 없어지는 건 아니고 arguments 객체의 프로퍼티로 보관된다고 한다.

인수의 타입 문제

  • 함수를 정의할 때 타입을 지정할 수 없으므로 나중에 인수로 의도하지 않은 타입이 들어올 경우 문제가 된다. 따라서 함수를 정의할 때 함수몸체에서 typeof 등을 활용하여 적절한 타입의 인수가 전달되었는지 확인할 필요가 있다.

매개변수 기본값

  • 함수를 선언할 때 기본값을 사용하면 인수가 전달되지 않았을 때, undefined를 전달했을 때 기본값이 적용된다.
function add(a=0, b=0) {
  return a + b;
}

console.log(add(1)); //1
//만약 기본값을 사용하지 않으면 NaN이 리턴된다. 

반환문

반환문은 return 키워드와 표현식(반환값)으로 구성된다.

반환문의 역할

  1. 함수의 실행을 중단하고, 함수를 빠져나간다.
  • 반환문 이후의 문들은 실행되지 않는다.
  • return 키워드 뒤에 줄바꿈을 하고 반환값을 입력하면? 세미콜론이 자동으로 삽입되어 반환값이 무시된다.
  1. return 키워드 뒤에 오는 표현식을 평가하여 반환한다.
  • 표현식이 없다면 undefined가 반환될 것이다.
function add(a,b) {
	return;
}

console.log(add()); //undefined
console.log(add(1)); //undefine

0개의 댓글