• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

함수선언문 말고 arrow function

20.10.27 12:50 작성 조회수 157

0

에로우 스코프는 함수선언문처럼은 못하나요?

보면 함수표현식처럼

if(true){

  d()  // Uncaught TypeError: d is not a function

  var d = () => {

  console.log( true )

  }

}

d() //true

이렇게 할당하는데 이렇게 하면은 이렇게 나오는데

함수표현식이여서 전역컨텍스트에 var d; 만 선언되고 

함수는 할당이 안되서 에러가 나오는데

'use strict'

if (true) {

  a() //true

  function a () { console.log(true) }

}

이렇게 블록스코프에 같인 함수선언문은 

true가 나오는데 

왜 arrow function 쓰라는지 조금만 더 설명 부탁드려도 될까요 

답변 1

답변을 작성해보세요.

2

함수선언문 vs. 함수표현식 관련한 내용은 JSFlow 강의에서 한 챕터를 들여 다루고 있습니다.
https://www.inflearn.com/course/%ED%95%B5%EC%8B%AC%EA%B0%9C%EB%85%90-javascript-flow/lecture/9447?tab=curriculum

애로우함수는 함수선언문 방식으로 선언할 수 없습니다. 원래부터 그렇게 만들어졌습니다.