javascript - 这两者有什么区别?

标签 javascript jquery function

<分区>

我看到以下 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 将显示名称。
    • 更重要的是,名称将打印在堆栈跟踪中。
    • 名称还有助于编写 self 记录或识字代码。

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

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

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

    <script>
      // Error
      functionOne();
    
      var functionOne = function() {
      }
    </script>
    
    <script>
      // No error
      functionTwo();
    
      function functionTwo() {
      }
    </script>
    

引用资料

  1. var functionName = function() {} vs function functionName() {}
  2. Are named functions or anonymous functions preferred in JavaScript?
  3. Named function expressions demystified
  4. Function Declarations vs. Function Expressions .
  5. var functionName = function() {} vs function functionName() {}

关于javascript - 这两者有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15216084/

相关文章:

Javascript 仅在放置在 View 页面中时才起作用

java - 复选框全选/取消全选(快速帮助)

javascript - 带有 HTML 内容解析的变量

javascript - postMessage JSON 在 Google Chrome 中的编码/解码是否与在 Firefox 中一样?

javascript - 查找动态生成的 li 元素

jquery - 如何突出显示单词 jquery ui 自动完成

javascript - TinyMCE 不启动 ajax 加载的文本区域

bash - 如何使函数对 bash 脚本可见?

function - 在 PostgreSQL SQL 函数中为多个结果抛出错误

javascript - 类型错误:mitsukuApi.send 不是函数