함수 표현식
함수 표현식
-
함수는 특별한 종류의 값
-
정의 : 함수를 만들고 그 함수를 변수에 할당
-
괄호가 있을 시 함수가 실행되며 value return
-
괄호가 없을 시 함수가 실행되지 않으며 함수 코드를 String 화 시켜 return
-
구조
` let 변수명 = function(){
// body
} `
-
값이라서 다른 변수에 할당 가능
알고리즘
- 함수 선언 방식 이용해 함수 생성 및 변수 저장
- 새로운 변수에 기존의 변수 값 (함수값) 복사 (괄호에 따라 함수 값을 할당하거나 함수 식 할당)
- 새로운 변수명으로 기존의 변수(함수) 호출
- 세미콜론(;)
기존의 중괄호로 만든 코드 블록은 세미콜론(;) 없어도 됨 함수 표현식의 경우 코드 블록이 아닌 값처럼 취급되어 변수에 할당되므로 구문의 끝이기에 붙음
콜백 함수
-
개념 함수를 함수의 인수로 전달하고 필요하다면 인수로 전달한 그 함수를 “나중에 호출(caled back)” 하는 것
-
구조 ` function name(a,b,c) {
a() b() c()
}
function newA() {
}
function newB() {
}
function newC() {
}
name(a,b,c)
`
-
줄이기 함수 호출 시 매개변수에 직접 익명 함수(이름이 없는 함수)를 이용하여 줄일 수 있음
-
익명 함수 이름이 할당되지 않은 함수. 다른 코드 블럭에서 접근 불가능
-
함수는 ‘동작’ 동작을 대변하는 값인 함수를 변수 간 전달하고, 동작이 필요할 때 이 값 실행
함수 표현식 vs 함수 선언문
-
문법
표현식 : 함수가 표현식이나 구문 구성 내부에 생성 선언문 : 독자적인 구문 형태로 존재
-
함수 생성 시기
표현식 : 실제 실행 흐름이 해당 함수에 도달했을 때 함수 생성하므로 실행 흐름 이전에 해당 함수 사용 불가능 선언문 : 함수 선언문이 정의되기 전에 호출
-
스코프 엄격모드 기준. 선언문 : 코드 블록 내에 위치하면 해당 함수는 블록 내 어디서든 접근 가능 하지만 블록 밖에서는 접근할 수 없음 표현식 : 코드 블록 외부에서 변수를 선언하고 코드 블록 내부에서 변수에 함수를 할당 한 후 외부에서 호출 가능
-
함수 선언문 알고리즘 : JS가 스크립트가 진짜 실행되기 전 준비단계인 ‘초기화 단계’ 에서 전역에 함수 선언문 찾고, 해당 함수 미리 생성.
-
활용 선언문일 시 함수 선언 되기전에 호출할 수 있어 코드 구성 자유롭게 가능 가독성도 좋아짐 선언문이 적합하지 않을 시 표현식 사용
요약
-
함수는 특별한 종류의 값
-
표현식은 함수를 변수에 할당하는 방식
-
선언문은 독립된 구문
-
콜백함수는 함수를 함수의 인수로 전달하고 그 함수를 필요할 시 호출하는 구조
-
익명 함수는 이름이 할당되지 않은 함수
-
표현식과 선언문은 문법, 생성 시기, 스코프가 다름
-
선언식을 쓰돼 맞지 않을 시 표현식 사용.
e094505dce83da54c721675be228e6e93ded52a5