함수 선언문으로 정의한 함수
function declared () {
console.log(‘함수선언문’)
};
함수 선언분은 함수를 정의 할 때 function 키워드를 사용한 것이다. function 키워드 다음에는 함수명, 그 뒤에는 소괄호(())를 입력해야 한다. 소괄호 안에는 함수 내부에서 사용할 수 있는 매개변수를 사용할 수 있다. 그 다음에, 실행할 코드를 코드블록({}) 내부에 넣어주면 된다. 내부에 있는 실행 코드는 함수가 호출 되었을 때만 작동한다.
함수표현식으로 정의한 함수
let expression = function () {
console.log(‘함수표현식’)
};
함수 표현식은 변수를 선언할 때 사용했던 키워드(let, const)를 사용해서 변수를 선언하고, 함수를 할당하는 형태로 코드를 작성하는 방법이다. 이때, 함수 선언문과는 달리, 함수에는 특별한 식별자를 지정할 필요가 없다. JavaScript에서는 이처럼 함수를 변수에 할당하는 것이 가능하고 이와 같이 함수를 정의하는게 함수 표현식이다.
가장 대표적인 차이는 함수 선언식은 호이스팅에 영향을 받지만, 함수 표현식은 호이스팅에 영향을 받지 않는다는 것이다. 개발을 하다보면 의도와 상관없이 함수가 먼저 읽히거나 실행되서 제대로 결과가 나오지 않을 수 있다. 그걸 방지 할려면 함수 선언문과 표현식을 잘 구분해서 사용해야 한다.