関数宣言、関数式


-関数宣言


:定義子のみ、完全マルチシース
  • 関数宣言.関数名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;
    }