My Wiki (CodesStates)/JS,Node

(1-3) JS/Node 기초 - 함수

Esoolgnah 2021. 6. 26. 19:31
728x90

 

함수란 어떤 목적을 가진 작업들을 수행하는 코드들이 모인 블록이다.

함수는 항상 출력값을  반환한다. (return)
함수는 어떻게 사용할까?

function cal(param1, param2) {
	console.log(param1 + param2);
	return param1 * 10; // 버튼 제작, 선언
}

cal(10,20); // 버튼 사용, 호출

 

 

삼각형의 넓이를 구해야 되는 경우를 함수로 만들어보자.

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

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


// 함수 내부에서 return을 한 경우, 출력값이 return 문의 값.

 

 

function getTriangleArea(base, height) {
  let triangleArea = (base * height) / 2;
  }
  console.log(getTriangleArea(2, 4))     // Prints undefined
  
  
  //함수 내부에서 return을 하지 않은 경우 출력값이 undefined

 

 

함수 선언 방법인 함수 선언식, 함수 표현식, 화살표 함수에 대해 알아보자.

 

 

함수 선언식

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

// 함수 선언식

 

 

함수 표현식

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

// 함수 표현식 - getTriangleArea라는 변수를 선언, 익명의 함수를 할당한다.

 

 

화살표 함수

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

// 화살표 함수 - getTriangleArea 라는 변수 선언, 함수 선언 화살표로 대체.

 

 

const getTriangleArea = (base, height) => base * height / 2;    // 0, 정상 작동
const getTriangleArea = (base, height) => { base * height / 2 } // X, undefined 리턴.

// 만약 함수의 본문(body)에 return 문만 있는 경우, return과 {} 중괄호를 생략할 수 있다.

 

 

const getTriangleArea = (base, height) ==> (base * height / 2)  // 0, 정상 작동

// return 문에서 소괄호를 사용할 수 있다.

 

 

//bad
const getStudentAvg = arr.filter(person => person.job === 'student').reduce((sum, person)) => (sum + person.grade), 0)

//good
const getStudentAvg = arr => {
  return arr
  .filter(person => person.job === 'student')
  .reduce((sum, person) => (sum + person.grade), 0)
}

//만약 함수 내의 표현식이 2줄 이상인 경우, return과 {} 중괄호(Curly brace)를 명시적으로 쓰는 것이 좋다.

 

 

 

 

 

 

 

 

반응형