
함수(function)란 하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록을 의미한다.
이러한 함수는 필요할 때마다 호출하여 해당 작업을 반복해서 수행할 수 있다.
함수를 사용하는 행위: 호출한다 (call)
함수를 사용하는 이유: 반복없이 재사용하기 용이하다
function a() {} //함수 선언문 (function declaration statement)
const b = function() {}; //함수 표현식 (function expression)
const c = () => {}; //화살표 함수 (arrow function)
함수 a를 호출할 때(a();) 결괏값은 undefined이다. (기본값)
함수를 호출하면 항상 결괏값이 나오는데, 이 값을 반환값(return value)라고 한다.
function a() {
return 10;
}
< undefined //반환값 (기본)
a();
< 10 //반환값
명시적으로 return 문을 사용하지 않는다면 항상 함수 실행문 끝에 return undefined가 있다고 생각하면 된다.
function a() {}
// 두 코드는 동일함
function a() {
return undefined;
}
반환값도 값이므로 다른 식이나 문에 넣거나, 상수나 변수에 대입할 수 있다.
또한 return문이 발동할 경우 함수의 실행이 그 즉시 종료된다.
function a() {
console.log('Hello');
return;
console.log('Return');
}
const b = a();
console.log(b);
Hello
function a() {
if (false) {
return;
}
console.log(‘실행됩니다.’);
}
a();
> 실행됩니다.
💡 화살표 함수에서, 화살표와 return이 함께 쓰일 경우 중괄호와 return의 생략이 가능하다.
const f = (x,y) => { return x * y; } const f = (x,y) => x * y; // 두 문장은 같다.
function a(parameter) {
console.log(parameter);
}
a('argument');
> argument
함수를 선언할 때 사용한 변수: 매개변수 (parameter)
함수를 호출할 때 넣은 값: 인수(argument)
함수는 여러개의 매개변수와 인수를 가질 수 있으며, 두 개의 갯수가 일치하지 않아도 된다.
매개변수 > 인수 : 대응되지 않는 매개변수에는 undefined가 대입
매개변수 < 인수 : 앞에서부터 순서대로 대입, 나머지는 생략
💡 화살표 함수에서는 인수를 사용할 수 없다.
오직 function으로 선언한 함수만 가능!
(function init () { //문
})();
IIFE의 필요성