함수를 새롭게 정의할때 쓰이는 대표적인 방식에는 함수 선언문과 함수 표현식이 있다.
function a(){} a()
위와 같이 별도의 변수 할당 명령이 없이 function의 정의부만 존재하는 것을 말하며 변수가 없기 때문에 반드시 함수명이 정의 되어 있어야 한다.
// 1. (익명)함수 표현식 var b = function (){} b() // 2. 기명함수 표현식 var c = function d(){} c() // ok d() // error
정의한 function을 별도의 변수에 할당하는것으로 함수명이 있어도되고 (기명함수 표현식), 없어도(익명함수 표현식) 된다.
위의 예제에서 변수명 b가 곧 함수명이 된다. 일반적인 함수 표현식.
위의 예제에서 변수명은 c, 함수명은 d.
주의할점
외부에서는 함수명으로 함수를 호출할 수 없고 오직 내부에서만 접근가능하다.
함수명은 디버깅시, 어떤함수인지 추적하기 위해 사용되었는데 요즘은 모든 브라우저들이 익명함수표현식의 변수명을 함수명으로 인식가능하기 때문에 많이 사용하지 않음.