在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');