자바스크립트의 함수는 일급 함수라고 불립니다.
일급 함수라는 것은 일급 객체의 조건을 만족한다는 것이고,
변수에 대입하고 함수에 매개변수로 넘기는 것을 지원합니다.
때문에, 자바스크립트에서 함수를 생성하는 문법이 여러가지가 있는데요.
이번 포스트에서 한 번 알아보겠습니다.
✍ 함수 선언식
function sing(song) {
return `${song}을 부릅니다.`;
}
function 표현식을 사용하여 함수를 생성할 수 있습니다.
함수 선언식은 호이스팅에 영향을 받습니다.
호이스팅이란 인터프리터가 코드를 실행하기 전에, 선언문의 위치를 맨 위로 끌어 올리는 것을 말합니다.
호이스팅의 영향을 받기 때문에 함수의 호출을 선언문 앞에서 할 수 있습니다.
✍ 함수 표현식
let sing = function(song) {
return `${song}을 부릅니다.`;
};
할당 연산자를 사용하여 함수를 생성하는 방법입니다.
함수 표현식은 익명 함수가 가능합니다.
익명 함수는 말 그대로 이름을 지정하지 않은 함수를 의미합니다.
불필요한 메모리를 차지하지 않으므로, 일회성이 목적이라면 적합할 것 같습니다.
✍ 화살표 함수
let sing = (song) => { return `${song}을 부릅니다.`};
ES6에서 새로 나온 문법으로 화살표 표현식을 사용하여 함수를 생성하는 방법입니다.
만약에 함수 내용이 한 줄이라면, return을 뺀 채로 식을 쓸 수도 있습니다.
객체를 참조하는 키워드를 this라고 하는데, 화살표 함수는 이 this 바인딩에 차이가 있습니다.
함수 선언식이나 표현식 내부에서 this를 호출하면, 전역 객체를 가리킵니다.
하지만, 화살표 함수에는 this가 없기 때문에 상위 스코프를 가리킵니다.
간단한 사용성만큼이나 가독성을 해칠 수도 있으므로,
적절하게 상황에 맞게 함수를 사용하려고 노력해야겠습니다.
틀린 내용이 있다면 댓글로 지적 부탁드립니다.
봐주셔서 감사합니다!
'JavaScript' 카테고리의 다른 글
[Express] 같은 경로의 핸들러 묶기 (0) | 2024.09.09 |
---|---|
[Express] 폴더 구조 알아보기 (0) | 2024.09.03 |
Express - Path에 매개변수 사용하기 (1) | 2024.09.02 |
구조 분해 할당! 나도 이제 중간 변수(temp) 없이? (0) | 2024.09.02 |
Node.js의 생태계 (0) | 2024.08.30 |