在Node.js中是否需要逗号?

在node.js的variables声明中省略逗号会产生风险吗? 例如,像下面这样声明一些全局variables就行了:

express = require('express') jade = require('jade') 

而且,如果不写下它们是不安全的,我不想写逗号(我不关心“代码的美观/清晰度”)。

重要说明 :我的意思是逗号,而不是分号(有3个关于分号的答案)。 这非常好,甚至build议从node.js中删除分号。 npm的创build者也是这样做的: http : //blog.izs.me/post/3393190720/how-this-works

如有疑问,请查看最新的JavaScript规范: http : //www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

请注意,你也不需要写

 var 

为全局variables。

但是这个问题是关于“逗号”的,所以请不要在编辑我的问题时错误地用分号replace逗号(以前做过)。

在JavaScript中,如果你不写分号 ; 他们将被无形地插入你的手中。 而且你可能并不总是喜欢他们去的地方。

您在技术上不需要用分号结束每个语句。 但是,大多数人认为这是一个好主意。

有关更多信息,请仔细阅读此Googlesearch的结果。 我们一直在争论这个话题。


这是一个例子,为什么这比第一眼看起来更复杂。 虽然在技术上不需要用分号结束每个语句,但是有一些情况下,你必须或事情中断。 在大多数代码库中,你不能完全忽略它们。

 foo.def = bar (function() { // some self executing closure })() 

看起来很简单吧? 那么解释者就是这样看待的:

 foo.def = bar(function() { // some self executing closure })() 

这可能不是你所期待的。 修复它的方法是用分号。

 foo.def = bar; (function() { // some self executing closure })() 

有很多像这样的情况。 你可以学习所有的东西,只在这些情况下使用它们,而当你不可避免地忘了你试图debugging你的代码,这是做了奇怪的事情,奇怪,你把你的头发几个小时… “你是什么意思wtfvar是不是function?!?它不应该是一个function!“

或者你可以使用分号一致性。

总之,没有。 当你去做代码缩小和编译器认为你的两个陈述是一样的时候,你可能遇到的问题就会出现。 无论如何,如果你select不使用逗号/分号,这是绝对不推荐,你应该没问题。

Node.js使用V8引擎来读取你的代码,所以它的行为几乎和谷歌浏览器一样。 也就是说,不使用分号通常是不好的做法。 口译员会试着理解你的代码,可能有时候会错误(由你的错误)。

看看这个完整的解释: 你推荐在JavaScript中的每个语句之后使用分号吗?

这个很晚的答案只是为了解释可能会读到的其他人的困惑。

既然你实际上是在说逗号 ,而不是分号,我只能假设你误解了引擎隐含的内容。

逗号不是可选的。 而这个代码:

 express = require('express') jade = require('jade') 

正在被隐式转换为:

 var express = require('express'); var jade = require('jade'); 

不是这个,你可能会期待:

 var express = require('express'), jade = require('jade');