在 node.js 的变量声明中省略逗号会带来风险吗?例如,像下面这样声明一些全局变量就可以了:
express = require('express')
jade = require('jade')
如果不写逗号是安全的,我不想写逗号(我不关心“代码的美观/清晰度”参数)。
重要:我指的是逗号,而不是分号(关于分号有 3 个答案)。完全没问题,甚至建议从 node.js 中删除分号。 npm 的创建者也这样做:http://blog.izs.me/post/3393190720/how-this-works
如有疑问,请查看最新的 javascript 规范:http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
注意你也不需要写
var
对于全局变量。
但是这个问题是关于“逗号”的,所以请不要在编辑我的问题时错误地将逗号替换为分号(之前完成)。
最佳答案
在 JavaScript 中,如果您不写分号 ;
,它们将以不可见的方式为您插入。你可能并不总是喜欢他们去的地方。
从技术上讲,您不需要以分号结束每条语句。但是,大多数人认为这是个好主意。
有关更多信息,请仔细阅读 this google search 的结果.我们已经为这个话题争论了很长时间。
下面是一个示例,说明为什么这比乍看起来要复杂。虽然技术上并不要求您以分号结束每条语句,但在某些情况下您必须这样做,否则事情就会中断。在大多数代码库中,您不能完全忽略它们。
foo.def = bar
(function() {
// some self executing closure
})()
看起来很简单吧?好吧,解释器会查看并执行此操作:
foo.def = bar(function() {
// some self executing closure
})()
这可能不是您所期望的。修复它的方法是使用分号。
foo.def = bar;
(function() {
// some self executing closure
})()
这样的例子很多。你可以全部学习它们,并且只在这些情况下使用它们,当你不可避免地忘记你尝试调试你的代码时,它正在做一些如此奇怪和奇怪的事情,以至于你在几个小时内都把头发弄得焦头烂额......“你是什么意思是 wtfvar
不是一个函数?!?它不应该是一个函数!”
或者您可以只使用一致的分号。
关于javascript - 逗号在 Node.js 中是必需的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968761/