nickbegain 2021. 4. 7. 00:20

- 함수

-> 정의 : 논리적인 일련의 작업을 하는 하나의 단위

-> 함수는 작은 기능의 단위  /  함수는 코드의 묶음이기 때문에 기능의 단위로 정의

-> 매번 같은 기능을 하는 코드를 입력값이 변함에 따라 계속 작성하는 번거로움을 줄이기 위해 함수로 기능을 정의하여 사용

-> 함수는 매개변수(파라미터)를 변화하여 호출 시 손쉽게 결과값을 얻을 수 있다.

-> 함수는 입력값과 출력값을 가진다. 입력값과 출력값은 매핑된다(서로 영향을 줌).

-> 함수는 호출 이후 반드시 return 된다. 

-> 만약 return을 지정하지 않을 경우 undefined가 반환된다.


- 함수 선언 : 어떠한 기능을 가진 함수를 작성

-> 크게 3가지 형태로 함수를 선언할 수 있다.  /  1) 일반적 형태의 함수 선언 2) 함수 표현식 3) 화살표 함수

1) function 함수이름(파라미터) { 함수내용(body) }

2) let 변수명 = function(파라미터) { 함수내용(body) }

3) let 변수명 = (파라미터) => { 함수내용(body) }  /  let 변수명 = (파라미터) => 함수내용 (이 경우 중괄호와 return문을 생략, 단 2줄이상일 경우 가독성을 위해서 생략하지 않는다.)  /  함수 keyword를 ‘=>’ 로 대신하여 사용 

()를 이용하여 표현도 가능,이 경우에도 return문은 생략 ex) let 변수명 = (파라미터) => (함수내용)

-> ‘{ }’으로 함수 body 작성

-> 파라미터(인자값)가 입력값

-> return문에 작성된 변수가 출력값

-> 1) 일반적 함수 선언의 경우 함수명을 지정하지만 2),3) 경우 변수에 익명함수 선언하여 값으로 할당한다.


- 함수 선언 / 함수 호출

-> 선언된 함수는 메모리 특정부분에 저장

-> 선언된 함수는 호출을 통해 사용이 가능하다. 호출시에 파라미터에 값을 전달하여 결과값을 얻는다
-> 호출된 함수는 메모리에서 호출되어 호출시 지정한 인자값(파라미터)에 따라 기능을 수행하여 결과값을 return하게 되며 이후 호출된 함수는 return값으로 변하게 된다.


[예제문제]

Q. 사각형의 넓이를 구하는 함수를 선언식으로 작성하고, 함수 표현식 및 화살표 함수로 바꾸어보세요.

1) 함수 선언식

function getRectangleArea (width, height) {

  let rectangleArea = width * height

  return rectangleArea

}

2) 함수 표현식

let getRectangleArea = function (width, height) {

  let rectangleArea = width * height

  return rectangleArea

}

3_1) 함수 표현식 (화살표 함수 - 1)

let getRectangleArea = (width, height) => {

  let rectangleArea = width * height

  return rectangleArea

}

3_2) 함수 표현식 (화살표 함수 - 2)

let getRectangleArea = (width, height) => width * height