javascript
기본 16. 함수 표현식
케케_
2024. 9. 6. 13:21
js에서의 함수는 특별한 종류의 값으로 취급 --> 함수 표현식 방식
다른 언어 - 특별한 동작을 하는 구조
let sayHi = function() {
alert( "Hello" );
};
- 위와 같이 = 를 사용함 --> 이 부분에서 js는 함수를 값으로 생각함을 느낌
- 함수가 변수에 할당
- ()가 없으면 반환값이 아닌, 함수 코드 자체를 문자형으로 출력 -> 값으로 취급하는 특성
function sayHi() {
alert( "Hello" );
}
alert( sayHi ); // 함수 코드가 보임
- 위와 같은 함수의 코드를 변수에 할당하면 그 변수를 함수로 사용할 수 있음
function sayHi() { // (1) 함수 생성
alert( "Hello" );
}
let func = sayHi; // (2) 함수 코드 복사
func(); // Hello // (3) 복사한 함수를 실행(정상적으로 실행됩니다)!
sayHi(); // Hello // 본래 함수도 정상적으로 실행됩니다.
- func 변수에 함수 코드를 넣어줌 (괄호 없음!)
- func()와 같이 함수로 사용 가능
콜백 함수
: 매개변수로 전달되는 함수 / 필요하면 나중에 호출됨
function ask(question, yes, no) {
if (confirm(question)) yes()
else no();
}
function showOk() {
alert( "동의하셨습니다." );
}
function showCancel() {
alert( "취소 버튼을 누르셨습니다." );
}
// 사용법: 함수 showOk와 showCancel가 ask 함수의 인수로 전달됨
ask("동의하십니까?", showOk, showCancel);
- showOk, showCancel : 콜백함수
세미 콜론
- if{}, for{}, function{}과 같이 중괄호 코드 블록 끝에는 ; 없어도 됨
- 함수 표현식엔 써야함
- let 함수이름 = {} 형태기 때문에, 즉 {}을 사용하지만 구문 안에서 값 역할을 하기 때문 (코드 블록이 아님)