我能问一下为什么有时我们创建一个函数,我们最终会得到一个分号,而有时却没有
function test(){
};
function test(){
}
取决于你如何声明函数。
var myfunc = function() {}; // use semicolon
function myfunc() {} // don't use semicolon
检查在http://javascriptcompressor.com/中压缩以下代码
var test = function (){
}
a = 10;
var test=function(){}a=10;
它就像SyntaxError
声明函数不会有问题
function test(){
}
压缩代码function test(){}a=10;
是有效的
要将答案背景化,您需要处理两种情况。
函数声明 - 显式声明一个函数:
function someFunction(){
// some code
}
函数表达式 - 将函数声明为表达式,因此:
var someFunction = function(){
// some code
};
注意在第二种情况下您只需要分号。当涉及到函数提升的概念时,区别很重要。
函数提升基本上意味着您必须考虑在什么时候您希望函数在运行时“可见”(执行上下文)。案例 1 使该函数在脚本中的任何位置都可见,这意味着无论您在脚本中的何处声明了该函数,您始终可以调用它。该函数在执行上下文中被提升到更高的位置。另一方面,情况 2 不会发生这种情况,因此您只能在声明它的行下方调用该函数。