[CS] 함수 Day-1

cptkuk91·2021년 10월 6일
0

CS

목록 보기
3/139

함수는 입력에 따라 작업을 하는 하나의 단위입니다. 함수는 일련의 작업을 논리적으로 만들어줘야 합니다.

샌드위치를 만드는 과정을 함수로 표현
링크텍스트

함수란?
1. 코드의 묶음 (지시사항의 묶음)
2. 기능의 단위
3. 구체적인 입력값과 출력값
4. 반드시 출력 return 된다.

함수의 사용법
1. 선언 (declaration)
2. 호출 (call, invocation)

함수의 예시
(주의사항 : return 작성을 안 할 경우 undefined를 출력함)

function getTriangleArea(base, height){
    let triangleArea = (base * height) / 2;
    return triangleArea; // 함수 밖으로 가져가기 위함
};

console.log(getTriangleArea(2,4));

함수 선언 방법
1. 함수 선언식
2. 함수 표현식
3. 화살표 함수

ex) 함수 선언식

function getTriangleArea(base, height){
    let triangleArea = (base * height) / 2;
    return triangleArea;
};

ex) 함수 표현식
변수를 선언 후 익명 함수 할당!

const getTriangleArea = function (base, height){
    let triangleArea = (base * height) / 2;
    return triangleArea;
}

ex) 화살표 함수
ES6에 도입 된 형식의 함수 (화살표로 축약해서 사용)

const getTriangleArea = (base, height) => {
    let triangleArea = (base * height) / 2
    return triangleArea;
}

알아두자! 화살표 함수

const getTriangleArea = (base, height) => base * height / 2
const getTriangleArea2 = (base, height) => {base * height / 2}; // {}중괄호 사용 시 undefined를 반환합니다.
const getTriangleArea3 = (base, height) => (base * height) * 2;

return 과 중괄호 {}를 생략할 수 있습니다.
중괄호 사용 시 undefined 를 반환합니다.
소괄호 사용은 가능하다.

함수의 호출
함수를 선언했다면 전달인자를 넣어 호출해줘야합니다.
매개변수(parameter)와 전달인자(argument) 의 차이를 알아야 합니다.

매개변수 : 함수를 선언할 때 적어주는 값 (실행할 때 바뀔 수 있음)
전달인자 : 함수를 호출할 때 매개변수에 할당되는 값을 얘기합니다.

ex) 사각형 넓이 구하기 (함수 선언식)

function getRectangleArea(base, height) { //매개변수 base, height
    let rectangleArea = base * height;
    return rectangleArea;
}

console.log(getRectangleArea(3, 4)); // 전달인자 3, 4

ex2) 사각형 넓이 구하기 (함수 표현식)

let getRectangleArea = function (base, height) {
    let rectangleArea = base * height;
    return rectangleArea;
}

console.log(getRectangleArea(3, 4));

ex3) 사각형 넓이 구하기 (화살표 함수)

let getRectangleArea = (width, height) => {
    let rectangleArea = width * height;
    return rectangleArea;
}

console.log(getRectangleArea(3, 4));
profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글