-
[JS]함수 선언문 vs 표현식Javascript 2024. 4. 21. 22:05
**함수 선언문
function 선언문() { 로직 }
**함수 표현식
const 표현식 = function () { 로직 }
함수 선언문은 호이스팅에 영향을 받지만, 함수 표현식은 호이스팅에 영향을 받지 않음.
=> 함수 선언문은 어디서든 호출이 가능하고, 표현식은 함수를 만든 후 그 아래에서만 호출이 가능하다.
그럼 함수 선언문이 더 자유롭고 좋은거 아닌가?
그러나, 선언문의 우선순위가 가장 높기 때문에
선언문이 너무 많다면 선언문을 모으는 데에 많은 시간을 소비하게 되어 실행코드의 순위가 뒤로 밀리게 되고 실행 시간이 길어질 수 있기 때문에 적당히 사용하는 것이 중요하다고 한다.
그래서 어떤게 더 좋다는건데?
정답은.....
그런거 없다!
그러나! 함수 표현식을 지향하는 곳들이 있다 ! 예를들어 에어비엔비 스타일 가이드를 보면 알 수 있다.
그러나! 함수 선언문을 지향해야한다고 주장하는 사람들이 있다! 모던 자바스크립트 튜토리얼에서는 함수 선언문을 먼저 고려하라고 한다.
그럼 왜 지향할까?
우선, 다른 함수의 인자로 넘길 수 있다는 것, 클로저로 사용할 수 있다는 것 이 큰 장점일 수 있다.
**넋두리
공부를 할 수록 빈틈이 너무 많이 보인다.
함수 표현식에 대해 공부하니 화살표함수가 보이고, 화살표함수가 보이니 콜백함수가 보인다. 콜백함수와 일반 함수의 차이점을 공부하니 이젠 this가 연결되고,
(this를 알아보고 싶다면! https://popeyes9304.tistory.com/28)
또한 콜백함수를 보니 이젠 동기/비동기가 눈에 들어온다. 이렇게 자바스크립트가 한 흐름처럼 공부할 수 있다는걸 처음 깨달았다....'Javascript' 카테고리의 다른 글
NOW SOPT 자바스크립트 과제 중 타입이 string이었던 이슈 (3) 2024.05.12 [JS] 배열 메서드들의 올바른 역할 (3) 2024.05.05 localStorage & sessionStorage (1) 2024.04.19 [JS]변수, 표현식과 문, 데이터타입, 타입 변환 - 타입 변환이 필요할 때 (5) 2024.04.14 [JS] this에 대해 알아보자! (0) 2023.11.08