Javascript 多行var f=function(){/*Code*/}是否应该得到分号

Javascript 多行var f=function(){/*Code*/}是否应该得到分号,javascript,coding-style,Javascript,Coding Style,设置变量以引用多行声明中的函数时,应在其后加分号。以福林为例: function sayHi(name) { (window.console && console.log || alert)('Hello ' + name); } var sayBye = function(name) { (window.console && console.log || alert)('Cya ' + name); }; 另一方面,如果第二个声明后面有分号,

设置变量以引用多行声明中的函数时,应在其后加分号。以福林为例:

function sayHi(name) {
    (window.console && console.log || alert)('Hello ' + name);
}

var sayBye = function(name) {
    (window.console && console.log || alert)('Cya ' + name);
};
另一方面,如果第二个声明后面有分号,因为它与var关键字相匹配,那么函数定义的末尾通常不会有分号。

第一个函数是函数声明,而不是语句。
它不需要分号

第二个函数是一个正则语句,恰好涉及函数表达式。

与所有其他语句一样,它应该以可选分号结尾。

由于JavaScript解析器的魔力,它不需要分号,但如果不使用分号,Douglas Crockford可能会有疝气。换句话说,将匿名函数赋给变量后使用分号被认为是一种很好的编码方式。

注意。不管怎样,我创造了自己的答案,只是为了装腔作势+感谢你的正确。@SLaks:谢谢!如果你下定决心的话,每天200英镑其实并不难。虽然我已经忘记了外面的感觉。。。嗯……是的;我知道。(虽然你实际上还没来这里50天)@SLaks:是的,回答了问题,一笔赏金在那里帮了点忙。:)我似乎平均每天大约223英镑。我想我听到我的生活在恐惧中呼喊。是的,ECMA规范要求它用于表达式——包括函数表达式。