Tow*_*wer 48 javascript coding-style conventions
在工作中,我们将括号放在下一行,但在家里,我做相反的事情.你更倾向哪个?(K&R vs OTBS)
function something() {
// ...
}
function something()
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
很多JavaScript库似乎都使用OTBS(一种真正的支撑样式).我想跟随它们以便在其他JavaScript项目中保持一致,但K&R风格看起来不是更具可读性吗?
注意:我们知道JavaScript中的return和braces的问题,这将始终是一个例外.但是,这只是一个案例.
Dan*_*llo 148
Douglas Crockford给出了选择K&R风格1的理由:
我总是使用K&R风格,把它
{放在一行而不是前面,因为它避免了JavaScriptreturn声明中可怕的设计错误.
他所指的错误是JavaScript如何return在以下两种情况下以不同方式处理语句:
return {
'status': 'ok'
};
Run Code Online (Sandbox Code Playgroud)
......和:
return
{
'status': 'ok'
};
Run Code Online (Sandbox Code Playgroud)
第一个将返回一个具有status属性的对象,而后一个将返回,undefined因为分号插入.
1 Douglas Crockford:JavaScript:The Good Parts:Style(page 96) - ISBN:978-0596517748.
bob*_*nce 32
这是一场圣战,你永远无法得到有用的答案!只要坚持项目中的其他人都在使用,不要争论!
对于它的价值,我是一个K&Rite.我发现OTBS在开放结构和下面的语句之间放置了很多视觉空间,当这两行通常密切相关时,可以更好地一起呈现,而不会介入几乎空白的行.我喜欢保留空白行以分隔相关语句块.
无论如何,在很多空格的编码风格中,这可能相对不重要.但就个人而言,我非常重视简洁,所以我可以在屏幕上保留更多的程序.
我不认为在闭合支架的不同柱上使用开放式支架是一个问题.从凹痕中很容易看到块状.除非你使用悬挂缩进.不要那样做.但这完全是另一场圣战.
dal*_*ton 19
我遵循Douglas Crockford的JavaScript编码约定,该约定受Sun的Java风格指南的启发.
这是一个链接:http://javascript.crockford.com/code.html
And*_*rew 14
在我看来,这取决于还有谁将使用您的代码.如果你在一个C#团队工作并分担很多责任,那就把它放在一个新的界限上,避免不可避免的争吵.如果您使用大量PHP(或较旧的JS程序员),请将其放在第一行,原因完全相同.
但是,如果你正在寻找更具权威性的东西,道格拉斯·克罗克福德说,开口支撑应始终位于顶线.如果我没记错的话,他的推理是,它使它与其他语言保持一致.基本上,因为这是有效的,但(可能)不正确的代码:
function myFunc()
{
return
{
ok: true
};
}
Run Code Online (Sandbox Code Playgroud)
...你应该普遍避免在新线上放置开括号.为什么?由于编程风格应该不会引起歧义.
上面的示例代码是有效的,因为它在语法上完全正确,如果您编写此代码,则不会引发异常.但是,{ok:true}它将返回undefined并且不会返回它下面的代码,而不是返回对象文字.将开口括号放在一行,它将返回您可能期望的对象文字.
问题是,你觉得这个论点足够引人注目吗?