함수 선언문, 함수 표현식

Steve·2021년 4월 13일
0

- 함수 선언문

: 정의부만 존재, 전체 다 호이스팅

  • 함수 선언문. 함수명 a가 곧 변수명
function a(){/*...*/}
a() ; // 실행 OK

- 함수 표현식

  • 정의한 함수를 별도의 변수에 할당한 표현식
    선언부만 호이스팅, 할당은 그 자리 그대로

  • (익명) 함수 표현식. 변수명 b가 곧 함수명

    var b = function () {/*...*/} /
    b(); // 실행 OK
  • 기명 함수 표현식. 변수명은 c, 함수명은 d.

var c = function d() {/*...*/} 
c(); // 실행 OK
d(); // 에러!
console.log(sum(1,2));
console.log(multiply(3,4));
function sum(a, b) { // (함수명 sum이 곧 변수명❗)
  return a + b;
}
var multiply = function (a,b) {
  return a * b;
}

위의 코드가 호이스팅을 마치면 아래 코드처럼 된다.


var sum = function sum(a, b) { //전체 다 끌어올려짐(함수명 sum이 곧 변수명❗)
  return a + b;
}
var multiply; // 선언부만 호이스팅 됨

console.log(sum(1,2)); // 3
console.log(multiply(3,4)); // multiply is not a function

multiply = function (a,b) {
  return a * b;
}
profile
Front-Dev

0개의 댓글