함수 표현식과 선언식

광천·2023년 3월 24일
0

함수 표현식과 선언식

function a(){} //선언식
const a = ()=>{} 표현식

차이

  1. this
    선언식 같은 경우 this는 전역객체를 가리킨다.
    표현식은 상위 스코프의 this를 참조한다. 그래서 콜백함수 내부의 this와 외부함수의 this의 불일치 문제를 해결할 수 잇다.

  2. 호이스팅
    선언식은 호이스팅이 발생하지만, 표현식은 호이스팅이 발생하지 않는다.

  3. 화살표함수는 인스턴스를 생성 할 수 없는 non-constructor다.

  4. 중복된 매개변수 이름을 선언 할 수 없다.

  5. 화살표 함수는 함수 자체의 this, arugument, super, new.target 바인딩을 갖지 않는ㄷ.

장점

  1. 선언식
    export default와 선언을 동시에 함으로써 편리와 메인 로직을 명시함을 얻는다.
  2. 표현식
    코드의 길이를 줄일수 잇다.
    콜백함수로 쓸때 깔끔해 보인다.
    클로져 사용

표현식이 클로져 사용 할때 왜 장점인지 모르겠다.

내가 생각에는 콜백함수 내부의 this와 외부함수의 this의 불일치 문제를 해결 해서가 아닐까

출처

https://tooo1.tistory.com/561

0개의 댓글