
어떤 목적을 가진 작업들을 수행하는 코드들이 모인 블록. 혹은 작은 기능의 단위.
구구단 2단 출력을 예시로 들어보겠다. 코드는 다음과 같다.
let num = 2;
console.log(2*1);
console.log(2*2);
console.log(2*3);
console.log(2*4);
console.log(2*5);
console.log(2*6);
console.log(2*7);
console.log(2*8);
console.log(2*9);
여기서 2단이 아닌 3단, 4단을 출력하려면 이 코드들을 반복해야 할 것이다.
숫자를 지정하여 엔터만 누르면 그에 맞는 구구단을 출력할 순 없을까?
다른 예시의 코드를 보겠다.
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);
}
위의 코드는 입력된 값에 따라 정해진 구구단이 실행된다. 이를 함수라 한다.
함수는 keyword, name, parameter, body로 구성된다.
function printHelloUser(name) {
console.log("Hello " + name + "!")
}
funtionprintHelloUsernameconsole.log("Hello " + name + "!")function cal(param1, param2) {
console.log(param1 + param2);
return param1 * 10;
}
cal(10, 20)
함수는 입력을 받아 항상 출력값을 반환한다.
return을 한 경우 -> 출력값이 return문의 값function getTriangleArea(base, height) {
let triangleArea = (base * height) /2;
return triangleArea;
}
console.log(getTriangleArea(2,4)) // expected output : 4
return을 하지 않는 경우 -> 출력값이 undefiendfunction getTriangleArea(base, height) {
let triangleAtrea = (base*height)/2;
}
console.log(getTriangleAtre(2,4)) // expected output : undefined
function getTriangleArea(base, height) {
let triangleArea = (base * height) /2;
return triangleArea;
}
const getTriangleArea = function (base, height) {
let triangleARea = (base * height) / 2;
return triangleArea;
}
function키워드를 =>로 축약해서 사용const getTriangleArea = (base, height) => {
let triangleArea = base * height;
return triangleArea;
}
return과 {}를 생략 가능하다.const getTriangleArea = (base, height) => base*height/2
// O, 정상 작동
const getTriangleArea = (base, height) => { base * height / 2 }
// X, undefined 리턴
const getTriangleArea = (base, height) => (base * height /2)
// O, 정상 작동
return과 {}를 명시적으로 쓰는 것이 좋다.function getTriangleArea (base, height) {} // base, height => parameter
getTriangleArea(2,4) // 2,4 => argument