这两者的区别是什么?

What is the difference between these two?

本文关键字:是什么 区别      更新时间:2023-09-26

我看到以下JavaScript函数的工作原理完全相同,那么它们之间的区别是什么?功能有:

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

我用同样的方式调用它们:

functionName();

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

1)speed of execution
2)Memory utilization etc.

提前感谢!

这个问题在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>
    

引用

  1. var functionName = function() {} vs function functionName() {}
  2. 在JavaScript中是命名函数还是匿名函数?
  3. 命名函数表达式demyfied
  4. 函数声明与函数表达式。
  5. var functionName = function() {} vs function functionName() {}
  1. 第一个是命名函数表达式,它应该返回一些值给调用者。
  2. 第二个只是一个函数,是否返回值由你决定