Try*_*der 12 javascript jquery styling curly-brackets
直到最近我才意识到这一点,但在编写javascript代码时我使用了Allman风格.
根据http://encosia.com/in-javascript-curly-brace-placement-matters-an-example/,我应该使用K&R风格.这是因为在某些情况下,将花括号放在下一行会导致问题.对我来说,问题是我变得非常喜欢奥尔曼风格而宁愿不改变.
所以,我的问题
是不是因为在javascript中放置大括号,allman样式会导致错误?jquery怎么样?
是否有任何技巧可以让我使用Allman风格而不会因花括号而出现问题?
使用这些样式是否还有其他问题?
是不是因为在javascript中放置大括号,allman样式会导致错误?
是的.正如您的链接所解释的那样,return换行符后面的语句会在尝试插入分号时混淆解析器.但是,此行为不仅限于返回对象文字.以下功能:
function foo()
{
return
"bar";
}
Run Code Online (Sandbox Code Playgroud)
也会回来undefined.
jquery怎么样?
无论是否包含jQuery,情况都完全相同.
是否有任何技巧可以让我使用Allman风格而不会因花括号而出现问题?
是的,不要将Allman样式与对象文字一起使用.考虑您要将对象文字分配给变量.你真的要写:
var foo =
{
bar: "quux"
};
Run Code Online (Sandbox Code Playgroud)
或者你会去:
var foo = {
bar: "quux"
};
Run Code Online (Sandbox Code Playgroud)
恕我直言,第二个片段比第一个片段更具可读性.您可以继续使用奥尔曼风格,里面的大括号for,if,while,function,等,但破例为对象文本.
使用这些样式是否还有其他问题?
return是一个非常特殊的情况,因为它有或没有参数是有效的.当return在一行上遇到单独的语句时,解析器无法判断是否应该添加分号以使单行语句有效,或者继续下一行并希望获得最佳.
出于这个原因,我认为这种行为只会成为一个问题,return而throw不是其他陈述.