这两者有什么区别?

san*_*dip 7 javascript jquery function

我看到下面的JavaScript函数完全相同,那么除了语法之外,它们之间有什么区别.功能是:

var functionName=function(){
    //some code here
}; 

function functionName(){
    //some code here
} 
Run Code Online (Sandbox Code Playgroud)

我用以下的方式打电话给他们:

functionName();
Run Code Online (Sandbox Code Playgroud)

请不要告诉我语法有所不同,除此之外还有什么不同之处

1)speed of execution
2)Memory utilization etc.
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Pra*_*man 1

StackOverflow 中已经多次回答了这个问题。这只是命名方式。因此,从答案中吸取一些观点,我想说:

  1. JavaScript 解释器总是将函数声明和变量声明不可见地移动(“提升”)到其包含范围的顶部。显然,函数参数和语言定义的名称已经存在。

  2. 优点缺点:

    命名函数有几个优点:

    • 荟萃分析的名称。functionInstance.name会告诉你名字。
    • 更重要的是,名称将打印在堆栈跟踪中。
    • 名称还有助于编写自记录或文字代码。

    命名函数表达式有一个缺点

    • IE 存在 NFE 内存泄漏问题
  3. 另一个主要区别

    区别在于functionTwo是在脚本块的解析时定义的,而functionOne是在运行时定义的。例如:

    <script>
      // Error
      functionOne();
    
      var functionOne = function() {
      }
    </script>
    
    <script>
      // No error
      functionTwo();
    
      function functionTwo() {
      }
    </script>
    
    Run Code Online (Sandbox Code Playgroud)

参考

  1. var functionName = function() {} vs function functionName() {}
  2. JavaScript 中更喜欢命名函数还是匿名函数?
  3. 命名函数表达式揭秘
  4. 函数声明与函数表达式
  5. var functionName = function() {} vs function functionName() {}