함수는 return 돌아온다.
keyword
, name
, parameter
, body
에 대해 이해할 수 있다.func
)와, 함수의 호출(func()
)를 구분하여 사용할 수 있다.parameter
)와 전달인자(argument
)를 구분하여 사용할 수 있다.코드의 묶음, 기능의 단위로 어떤 목적을 가진 작업들을 수행하는 코드들이 모인 블록이다.
입력과 출력간의 매핑 mapping이 이루어 진다.
함수는 반드시 돌아온다. return
⚠️ return 하지 않는 함수는 undefined를 반환한다.
⚠️ return문을 만나면 return하고 함수는 종료된다.
함수의 선언 declaration을 하면 특정 메모리에 저장되고, 이를 호출 call하여 사용할 수 있다.
let result = plus(10, 20)
function plus(param1, param2) {
console.log(param1 + param2)
return param1 + param2
}
// 1. plus 함수를 호출한다.
// 2. 이때 전달인자 argument값인 10과 20이 순서에 따라 매개변수 param1, param2에 매핑된다.
// 3. plus 함수 내의 코드가 진행된다.
// 4. 연산된 결과 값을 콘솔에 출력하고.
// 5. 값을 리턴한다.
// 6. 리턴된 값은 result에 재할당된다.
result = 30
function getTriangleArea(base, height) {
let triangleArea = (base * height) / 2
return triangleArea
}
const getTriangleArea = function (base, height) {
let triangleArea = (base * height) / 2
return triangleArea
}
const getTriangleArea = (base, height) => {
let triangleArea = (base * height) / 2
return triangleArea
}
함수에 return 문만 있는 경우 return
과 {}
를 생략할 수 있다.
!!가독성을 위해 return문이 한 줄일 경우에만 사용하도록!!
const getTriangleArea = (base, height) => base * height / 2
// 정상적으로 값을 return
const getTriangleArea = (base, height) => {base * height / 2}
// undefined를 반환
// 이 식은 return문도 없고, 저장도 하지 않고 연산만 하고 끝나는 함수이기 때문.
const getTriangleArea = (base, height) => (base * height / 2)
// return문에 소괄호를 사용해도 정상적으로 값을 return
함수의 이름과 호이스팅에서 차이가 있다.
functionName()
functionName()
let functionName = function abc() {
return '변수명으로 호출'
}
functionName()
'변수명으로 호출'
func1(); // 'hello'
func2(); // ReferenceError
function func1(){
console.log('hello')
}
let func2 = function(){
console.log('hello')
}
let num = 4 // 4단
console.log(num * 1) // 4
console.log(num * 2) // 8
console.log(num * 3) // 12
console.log(num * 4) // 16
console.log(num * 5) // 20
console.log(num * 6) // 24
console.log(num * 7) // 28
console.log(num * 8) // 32
console.log(num * 9) // 36
console.log(num * 10) // 40
function mulTablePrinter(num) {
console.log(num * 1)
console.log(num * 2)
console.log(num * 3)
console.log(num * 4)
console.log(num * 5)
console.log(num * 6)
console.log(num * 7)
console.log(num * 8)
console.log(num * 9)
console.log(num * 10)
}
mulTablePrinter(4) // 4단
mulTablePrinter(7) // 7단
// 함수 선언식
let getRectangleArea(width, height) {
let rectangleArea = width * height;
return rectangleArea
}
// 함수 표현식
let getRectangleArea = function (width, height) {
let rectangleArea = width * height;
return rectangleArea
}
// 화살표 함수
let getRectangleArea = (width, height) => {
let rectangleArea = width * height;
return rectangleArea
}
// 화살표 함수 return 값만 있을 경우.
let getRectangleArea = (width, height) => width * height