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 함수이름 = {} 형태기 때문에, 즉 {}을 사용하지만 구문 안에서 역할을 하기 때문  (코드 블록이 아님)

 

 

 

참고 문서