함수란?
- 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의 한 것
- 함수 내부로 입력을 전달받는 변수를 매개변수(parameter) 입력을 인수(argument) 출력을 반환값(return value)
- 함수 정의(function definiton)를 통해 생성
함수 선언문을 통한 함수 생성
function add(x, y){
return x + y;
}
- 인수(argument)를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적으로 지시해야 함 → 함수 호출(function all/invoke)
//함수 호출
let result = add(2, 5);
//함수 add에 인수 2,5 를 전달하면서 호출하면 반환값 7을 반환
console.log(result) // 7
- 함수는 몇번이든 재사용이 가능하기 때문에 코드의 재사용이라는 측면에서 유용
- 유지보수의 편의성을 높이고 코드의 신뢰성을 높임
- 함수는 객체, 일반 객체는 호출할 수 없지만 함수는 호출 가능
함수 정의
함수 호이스팅(function hoisting)
- 함수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징
- 함수 표현식으로 함수를 정의하면 함수 호이스팅이 발생하는 것이 아니라 변수 호이스팅이 발생