函数表达式

Apr 30, 2019 5:06·180 words ·1 minutes read

  • 什么是函数表达式?

    • 例子:

      /* 函数声明 */
      function functionName(arg0, arg1, arg2) {
        // 函数体
      }
      
      /* 函数表达式 */
      var functionName = function(arg0, arg1, arg2) {
        // 函数体
      };
      
  • 函数声明提升问题:

    • 函数声明的一个重要特征就是函数声明提升
    • 函数表达式与其他表达式一样,在使用前必须先赋值
      sayHi();    // 错误,函数还不存在
      var sayHi = function () {
        alert("hi");
      }
      
  • 函数表达式与函数声明的其他区别

    • 函数声明使用错误:
      // 不要这样做
      if (condition) {
        function sayHi(){
            alert("hi");
        }
      } else {
        function sayHi(){
            alert("hi");
        }
      }
      
    • 但是使用函数表达式就没有问题:

      var sayHi;
      
      // 可以这样做
      if (condition) {
        sayHi = function (){
            alert("hi");
        }
      } else {
        sayHi = function (){
            alert("hi");
        }
      }