: 코드의 묶음(즐겨찾기), 기능의 단위, 입력과 출력산의 매핑, 반드시 돌아온다 / 어떤 목적을 가진 작업들을 수행하는 코드들이 모인 블록, 함수는 항상 출력값을 반환한다!(return)-만약 return문을 사용하지않으면 undefined을 반환한다
const base = 3;
const height = 4;
const triangle = (base * height) / 2;
console.log(triangle); // 결과 : 6
인데... 변의 길이가 바뀌는 경우 함수로 만들어 계산할수 있음
function getTriangle(base, height) {
let triangle = (base * height) / 2;
return triangle;
}
console.log(getTriangle(2,4)); // 4
이렇게 함수로 할수 있음
function getTriangle(base, height) {
let triangle = (base * height) / 2;
return triangle;
}
const getTriangle = function (base, height) { // 먼저 변수를 선언하고 익명함수를 할당하는 방식
let triangle = (base * height) / 2;
return triangle
}
const getTriangle = (base, height) => { // 함수 표현식을 기반으로 하여 먼저 변수 선언하고 function키워드를 화살표로 축약해서 표시한 익명합수를 할당하는 방식
let triangle = (base * height) / 2;
return triangle;
}
- 만약 함수의 본문(body)에 return 문만 있는경우, return과 {}중괄호(curly bracket)를 생략할 수 있음.
const getTriangle = (base, height) => height / 2; // O, 정상작동 ( 중괄호 생략해야만 함)
const getTriangle = (base, height) => { height / 2 } // X, undefined 리턴
const getTriangle = (base, height) => () height / 2 ) // O, 정상작동 - 소괄호 사용 가능
- 함수 내의 표현식이 2줄 이상인 경우, return과 {}중괄호를 명시적으로 쓰는 것이 좋음
const getStudent = arr => arr.filter(person => person.job === 'student').reduce((sum, person) => (sum + person.grade), 0) // bad...
const getStudent = arr => {
return arr
.filter(person => person.job === 'student')
.reduce((sum, person) => (sum + person.grade), 0)
} // good!!
프로그래머 끼리 대화할때는 파라미터든, 아규먼트든 그냥 '입력값' 이라고 말하기도 한단댜~!~
파라미터는 함수 내부에서 변수 선언을 따로 하지 않아도 되는지..? --> 이미 함수내부에서만!! 변수로 선언이 된거기 떄문!!, 전달인자가 전달되면 변수로 할당된거