0

我能问一下为什么有时我们创建一个函数,我们最终会得到一个分号,而有时却没有

function test(){

};

function test(){

}
4

3 回答 3

1

取决于你如何声明函数。

var myfunc = function() {}; // use semicolon

function myfunc() {} // don't use semicolon
于 2013-04-04T11:40:27.487 回答
0

检查在http://javascriptcompressor.com/中压缩以下代码

var test  = function (){

}

a = 10;

var test=function(){}a=10;它就像SyntaxError

声明函数不会有问题

function test(){

}

压缩代码function test(){}a=10;是有效的

于 2013-04-04T11:45:12.023 回答
0

要将答案背景化,您需要处理两种情况。

  1. 函数声明 - 显式声明一个函数:

    function someFunction(){
      // some code
    }
    
  2. 函数表达式 - 将函数声明为表达式,因此:

    var someFunction = function(){
      // some code
    };
    

注意在第二种情况下您只需要分号。当涉及到函数提升的概念时,区别很重要。

函数提升基本上意味着您必须考虑在什么时候您希望函数在运行时“可见”(执行上下文)。案例 1 使该函数在脚本中的任何位置都可见,这意味着无论您在脚本中的何处声明了该函数,您始终可以调用它。该函数在执行上下文中被提升到更高的位置。另一方面,情况 2 不会发生这种情况,因此您只能在声明它的行下方调用该函数。

于 2013-04-04T11:58:49.180 回答