함수(function)

moono·2022년 12월 21일
0

JavaScript

목록 보기
5/23

Today's JavaScript

함수



함수

입력 받아서 코드블록 내부의 코드를 실행한 후 함수의 실행 결과를 반환하는 일련의 과정
함수 사용한다는 건 특정한 코드 실행 과정을 하나의 묶음으로 묶어 필요할때 마다 호출해 실행
특정한 코드실행 과정을 묶어 함수를 생성하는 것을 함수를 정의한다 라고 함


대표적인 함수 정의 방법

함수 선언식

  • 함수 선언 키워드인 function 으로 함수 선언
  • 변수 선언 시 let 사용한 것 처럼 함수 정의는 function 키워드 사용
  • 호출되기 전까지 실행되지 않음

함수 표현식

  • 변수에 함수를 할당하여 함수를 표현
  • 변수 선언때 사용했던 let 키워드 사용해 변수 선언 후 함수 할당하는 형태로 코드 작성
  • 선언식과 달리 함수에는 특별한 식별자를 지정할 필요 x
  • 호출되기 전까지 실행되지 않음
// 함수선언문 으로 정의한 함수
function 함수명 (매개변수) {
	//실행할 내부코드
};

// 함수표현식 으로 정의한 함수
let 함수명 = function (매개변수) {
	//실행할 내부코드
};

궁금증 🧐❓

함수선언식과 함수표현식의 명확한 차이가 너무 궁금하다
그리고 요즘은 화살표 함수 를 많이 쓴다고 하는데
이거 넘나 신세계
화살표 함수 참고 링크

함수 호출

함수 내부에 있는 코드는 함수 호출했을 때만 실행
함수 호출 이란, 함수를 실행시키는 명령을 전달하는 것

  • 선언식 호출 방법 : 함수를 정의할 때 지정한 함수명 뒤에 소괄호 () 에 붙이면 됨
  • 표현식 호출 방법 : 선언한 변수명에 소괄호 () 붙이면 됨

매개변수와 전달인자

매개변수

  • 함수를 정의할 때 선언

  • 함수 코드 블록 안에서 변수처럼 취급

  • 함수 정의 할 때 소괄호 () 안에 매개변수 추가(여러개도 가능)
    ex. (num1, num2)

  • 함수 내부에서만 사용 가능

  • 아무것도 할당되지 않은 매개변수는 undefined 로 초기화됨

전달인자

  • 함수 호출할 때 소괄호() 안에 값을 넣음으로 매개변수에 값 할당

📎📎 연습문제

구구단 n단을 출력하는 함수를 정의하고 호출

// 함수선언문 으로 정의한 함수
function multiplication (num) { // num 이라는 매개변수 지정
  for (let i = 1; i <= 9; i++) { // 반복문으로 초기값, 조건식, 증감식 
	console.log (num*i) // 실행할 코드
};
  muliplication(2); // 전달인자로 결과값 호출
  // 2단 2*1 ~2*9 까지 출력

매개변수와 전달인자

  • 매개변수보다 작은 전달인자 전달 시 아무것도 전달되지 않은 매개변수는 undefined 로 초기화

  • 매개변수보다 많은 전달인자 전달 시 매개변수 갯수만큼만 호출
    ⇒ JS 내부에 arguments라는 특별한 지역 변수에 마치 배열같이 저장돼서 초과된 인자는 무시하고 오류는 발생하지 않는다.

  • 매개변수는 함수 내부에서만 사용 가능

  • 함수 내부에서 선언한 변수도 함수 내부에서만 사용 가능

  • 매개변수와 함수 내부에서 선언한 변수는 자신이 선언된 위치에 따라 유효범위 결정

스코프

  • 변수가 유효한 범위

return문

  • 함수의 실행 결과를 외부로 반환 -> 함수 외부에서 함수의 결과값을 사용할 수 있다는 의미
  • 함수 내부의 코드가 차례대로 실행되다가 return문 만나면 값을 반환한 후 함수 종료
  • return문에 작성된 코드 실행 후 결과를 함수 외부로 리턴
  • 함수 외부에서 함수 호출하면 함수의 실행결과 확인 가능
function add (x, y) {
   return x + y; // return문
}
let result = add(3, 2); // 함수 호출의 결과를 변수에 할당 가능
console.log(result); // 5

0개의 댓글