함수
- 함수는 객체타입의 값이다. 따라서 식별자를 붙일 수 있다.
- 함수의 정의는 함수 선언문, 함수 표현식, Function생성자 함수, 화살표 함수를 통해 가능하다.
- 함수는 객체지만 일반객체와는 다르다. 일반 객체는 호출할 수 없지만 함수는 호출할 수 있다. 또한 일반 객체에는 없는 함수 객체만의 고유한 프로퍼티를 갖는다.
- 함수이름은 함수 몸체 내에서만 참조할 수 있는 식별자다.
- 함수표현식은 익명함수로 작성할 수 있지만, 함수 선언문은 반드시 기명함수로 작성해야한다.
- 기명함수는 자바스크립트엔진에 의해 문맥에 따라 함수표현식으로도, 함수선언문으로도 정의될 수 있다.
- 기명함수가 값으로 취급받는 문맥(할당연산자 우측에 위치, 그룹 연산자 내에 위치..etc)에서는 함수 리터럴로
- 기명함수가 단독으로 쓰인 상황에서는 함수 선언문으로 평가받는다.
- 함수선언문의 호출은 함수이름을 호출하는 것이 아니라, 자바스크립트엔진이 암묵적으로 생성한 식별자를 호출하는 것이다.
- 함수선언문은 호이스팅되므로, 런타임이전에 선언이 이루어진다. 따라서 런타임에 함수선언문의 코드가 평가받기 이전 호출이 가능하다.
- 함수 호이스팅은 함수를 호출하기 전에 반드시 함수를 선언해야 한다는 당연한 규칙을 무시한다. 이 같은 문
제 때문에 《JavaScript: The Good Parts》 7의 저자이자 JSONJavaScript Object Notation을 창안한 더글라스 크락포
드Douglas Crockford는 함수 선언문 대신 함수 표현식을 사용할 것을 권장한다.
- 함수 호이스팅은 함수를 호출하기 전에 반드시 함수를 선언해야 한다는 당연한 규칙을 무시한다. 이 같은 문
'내일배움캠프[4기_Reac트랙] > TIL' 카테고리의 다른 글
내일배움캠프 React트랙 77일차 회고 (2022.02.15) (0) | 2023.02.16 |
---|---|
내일배움캠프 React트랙 75일차 회고 (2022.02.13) (0) | 2023.02.13 |
내일배움캠프 React트랙 74일차 회고 (2022.02.10) (0) | 2023.02.10 |
내일배움캠프 React트랙 73일차 회고 (2022.02.09) (0) | 2023.02.09 |
내일배움캠프 React트랙 71일차 회고 (2022.02.07) (0) | 2023.02.07 |