在javascript中,何时应该和何时不应该在函数后加分号
我能问一下,为什么有时我们创建一个函数,结果是一个分号,而有时却没有在javascript中,何时应该和何时不应该在函数后加分号,javascript,Javascript,我能问一下,为什么有时我们创建一个函数,结果是一个分号,而有时却没有 function test(){ }; function test(){ } 取决于您如何声明函数 var myfunc = function() {}; // use semicolon function myfunc() {} // don't use semicolon 选中压缩中的以下代码 它类似于var test=function(){}a=10,即SyntaxError 对于像这样的declare函数来
function test(){
};
function test(){
}
取决于您如何声明函数
var myfunc = function() {}; // use semicolon
function myfunc() {} // don't use semicolon
选中压缩中的以下代码 它类似于
var test=function(){}a=10代码>,即SyntaxError
对于像这样的declare函数来说,这不会是一个问题
function test(){
}
压缩代码函数测试(){}a=10代码>是有效的一个要将答案上下文化,您需要处理两个场景
函数声明-显式声明函数,因此:
function someFunction(){
// some code
}
函数表达式-将函数声明为表达式,因此:
var someFunction = function(){
// some code
};
注意第二种情况下只需要分号。当涉及到功能提升的概念时,差异很重要
函数提升基本上意味着您必须考虑在运行时希望函数“可见”(执行上下文)的时间点。案例1使函数在脚本中的任何位置都可见,这意味着无论在脚本中声明函数的位置如何,都可以调用它。函数在执行上下文中被提升到更高的位置。另一方面,情况2并非如此,因此您只能在声明该函数的行下方调用该函数。在这种情况下,第一个分号也不是必需的。它不是必需的,但您应该始终在(函数)表达式之后加上分号。我知道这是不必要的,但我总是试图教人们最好的做法。如果他放弃分号,迟早会出现语法错误。因为它无关紧要,所以最好以正确的方式学习。事实上,如果你从两个方面都“学习”,那么如果你真的遇到了语法错误,那么调试就更难了,因为你已经知道两者都是对的。可以说这是压缩器的错,而不是程序员的错。压缩器不应使有效代码无效。您可以在此stackoverflow中找到答案:
var someFunction = function(){
// some code
};