일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자바스크립트
- 지역변수
- 버블링
- addEventListener
- 단락회로평가
- truthy
- INCLUDES
- 자바스크립트기초
- 동기적
- map()
- 이벤트위임
- 리액트
- 비구조화
- js
- 돔조작
- 프론트엔드
- Await
- text-align
- async
- falsy
- 어웨이트
- 코딩공부
- 논리연산자
- 중앙정렬
- icoMoon
- 캡쳐링
- 전역변수
- git
- 비동기적
- 이벤트리스너
- Today
- Total
피리부는 사나이 (pied piper)
[JS] 함수 표현식 VS 함수 선언식 본문
함수 표현식 복습
콜백 함수 (자바스크립트의 정신을 대변)
https://ko.javascript.info/function-expressions
함수 ask의 인수, showOk와 showCancel은 콜백 함수 또는
콜백이라고 불린다.
값으로서의 함수
함수를 함수의 인수로 전달하고 필요하다면 인수로 전달한
그 함수를 나중에 호출하는 것이 콜백 함수의 개념
익명 함수 : 변수에 할당 된게 아니기때문에 선언된 함수 밖에서
접근할 수가 없음.
함수는 “동작"을 나타내는 값
문자열이나 숫자는 데이터를 나타냄
함수는 하나의 action을 나타냄
함수 선언문과 함수 표현식의 차이
함수 선언문
// 함수 선언문
function sum(a, b) {
return a + b;
}
함수 표현식 독자적인 구문형태로 존재
그러나, 함수 표현식은 표현식이나 구문 구성 내부에 생성
// 함수 표현식
let sum = function(a, b) {
return a + b;
};
두 번째 차이가 중요
자바스크립트 엔진이 언제 함수를 생성하는지가 차이
따라서 실행 흐름이 함수에 도달했을 때부터 해당 함수를 사용할 수 있습니다.
위 예시를 이용해 설명해 보도록 하겠습니다. 스크립트가 실행되고, 실행 흐름이 let sum = function…의 우측(함수 표현식)에 도달 했을때 함수가 생성됩니다. 이때 이후부터 해당 함수를 사용(할당, 호출 등)할 수 있습니다.
함수표현식은 흐름이 해당 함수에 도달했을 때 생성
반대로 선언문은 선언문이 정의되기 전에도 호출될 수 있음
스크립트는 함수 선언문이 모두 처리된 이후에서야 실행됩니다. 따라서 스크립트 어디서든 함수 선언문으로 선언한 함수에 접근할 수 있는 것입니다.
함수 선언문은 선언된 코드 불록안에서만 유효 (중괄호 안에서 선언된 함수 선언문은 중괄호 밖에서는 선언되지 않는다는 이야기
해결법 : if문 안에 있는 함수 선언문을 표현식으로 바꾸면 호출된다
if문 밖에 선언한 변수 welcome에 함수 표현식으로 만든
함수는 중괄호 밖에서도 가능함
함수 선언문과 표현식 중 무엇을 선택해야하는가?
함수 선언문을 선언하는 것을 고려하는게 좋다고함
함수가 선언되기 전에 호출할 수 있어서 코드 구성을 좀더 자유롭게 할 수 있음. 또한 가독성도 좋다.
'Java Script' 카테고리의 다른 글
[JS] preventSubmit : 기본 동작 막는 방법 (0) | 2022.03.21 |
---|---|
[JS] 지역 변수와 전역 변수 (0) | 2022.03.02 |
[JS] 배열과 객체의 차이 (0) | 2022.02.16 |
[JS] 콜백 함수 (0) | 2022.02.16 |
메서드와 This (0) | 2022.02.15 |