在JavaScript中,空真块是成语吗?

Cha*_*ens 9 javascript

我刚看到代码看起来像这样:

if (foo == "bar"){}else{
}
Run Code Online (Sandbox Code Playgroud)

是否有充分的理由让某人以这种方式写作而不是

if (foo != "bar") {
}
Run Code Online (Sandbox Code Playgroud)

或者我只是在处理一个狂热的疯子(这是我基于代码中其他事情的假设).

mae*_*ics 11

[编辑]

JavaScript社区中没有这样的约定.这只是糟糕的代码.

[原文"答案"下方]

我在离开项目时更喜欢使用以下语法:

if (foo == "bar") {               /* 100 or so spaces */ } else {
}
Run Code Online (Sandbox Code Playgroud)

} else {希望文本编辑器在屏幕上隐藏该段,以便代码与它看起来完全相反.这样我就可以确保剩下的开发团队诅咒我的名字,并且永远不会考虑我将来的开发或支持.= d


Sco*_*tie 3

如果我的一个开发人员以这种方式编写代码,我会将其扔回给他们,并附上一份《Javascript:好的部分》的副本。我想不出这样做的任何充分理由。

此外,他们应该将比较写为if (foo === "bar")。更好的练习。

一年半后编辑:

出于无聊,我拼凑了一个 jsperf,只是为了看看 OP 中显示的两种方法之间是否有任何明显的性能差异,[剧透警告]不,没有。

http://jsperf.com/empty-blocks-in-if-else-statement

  • 作为一个主要拥有 Perl 经验的动态程序员,我不得不问,为什么我应该关心 `foo` 的类型?如果它强制转换为“bar”,那么就我的目的而言,它就是“bar”。我可以看到它在其他场景中可能有用,但为什么我应该使用 `===` 作为一般规则? (2认同)