본문 바로가기
D.evelop/JavaScript

[TIL]Javascript - 함수 호출과 테스트

by Danne 2021. 8. 12.

선언한 함수를 실행시키기 위해서는 🔊함수 호출🔊이 필요하다.

 

 함수의 호출 (function call) 

  • 호출을 통해야 지정된 함수의 계산이 수행

 

형식)

//함수 호출
함수명(인수 리스트);
  • 괄호'()' 없이 작성하면 변수로 인식함
  • 인수(argument) 생략가능

 

인수 없을 때

// 함수 정의
function hello(){
	console.log('Hello, World!');
}

hello(); // 함수 호출

/*
hello; // 변수로 인식
*/

 

인수 있을 때

//함수정의
function add(a, b){
	console.log(a + b)
}

//함수 호출
add(1, 3) // 4 (출력)

 

 

👩‍💻백문견이 불여일타

 

✔️함수를 정의만 하면?

- 함수는 존재하지만 호출된 결과는 없다.

 

 

✔️호출된 함수에 오류가 있으면?

- 오류를 표시하고, 이후의 코드는 수행되지 않는다. (오류 이전의 코드는 수행됨)

 

 

✔️ 함수를 호출만 하면?

- 아무 결과도 나오지 않는다.

 

 

✔️ 함수명을 잘못 호출하면?

- 잘못 호출된 함수명을 기준으로 정의되지 않았다는 오류를 보여준다.

 

 

✔️ 같은 함수를 여러번 호출하면?

- 여러 번 호출 된다.

 

 

✔️ 함수 호출 위치와 상관이 있을까?

  • 함수의 위에서 호출을 하면?

- 호출한 순서대로 호출됨

 

❗️주의 : js는 함수가 실행되기 전 함수안의 필요 변수값(변수 선언/함수선언문)을 모두 최상단에 선언된다. 호출을 먼저 작성할 경우 함수 선언이 정의 되기전에 접근, 호출 할수도 있다. ( "호이스팅" 내용 참고 : 링크

 

 

  • 다른 함수 안에서 호출하면?

- 다른 함수 내부에서 실행되어 함께 호출됨

 

 

  • 해당 함수 안에서 호출하면?

- 내(함수)가 실행된 채로 실행 되었는데, 또 실행되어 실행....되므로 무한 루프를 돈다.

하지만 조건을 걸고 스스로를 호출하는 방식으로 응용이 가능한데 이를 "재귀함수"라고 한다.

  • 재귀함수

주석 수정 : if 절에 조건을 적은 것

 

 

✔️ 호출 시 인수 값을 호출할 함수의 매개변수보다 적거나 많이 입력하면?

  • 인수 값이 매개변수의 수 보다 적으면
    •  NaN (연산이 잘못되어 잘못된 숫자라는 오류)이 나온다.
    • 인수가 전달되지 않은 매개변수는 undefined로 초기화 된다.
  • 인수 값이 매개변수의 수 보다 많으면
    • 인수 목록의 시작부터 같은 갯수의 만큼만지만 잘라 연산된다.
    • 초과된 인수는 무시한다.

 

 

 

🤯헷갈렸던 용어들

더보기

인자 = parameter = 매개변수 = Variable 

- 변수명

 

인수 = argument = 전달인자 = Value

- 구체적인 값

 

 

 

📚참고 자료

생활코딩 - 자바스크립트 "함수"

https://opentutorials.org/course/743/4729

MDN Web Docs - JavaScript "함수"

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Functions

도서 "Inside Javascript" - 송형주, 고형준

Poiemaweb - "Javascript - 5.12 Function"

https://poiemaweb.com/js-function#61-arguments-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0

 

반응형

댓글