javascript - 逗号在 Node.js 中是必需的吗?

标签 javascript node.js syntax

在 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/

相关文章:

variables - Go中这个括号括起来的变量声明语法是什么?

javascript - 对于我的 Angular js 项目,$state is params 为空

Python:在迭代之间更改代码

javascript - 从日期中提取月份和年份并显示为 MMM-YY

node.js - 如何使用云功能删除 firebase 存储中的图像?

javascript - 如何优雅地结束 Google Speech-to-Text streamingRecognize 并取回待处理的文本结果?

javascript - Discord Bot 异步函数中的 Giphy API

MySQL:联合查询在 MySQL 5.5 上失败,在 MySQL 5.1 上工作

javascript - 如何使用javascript获取没有$_GET参数的url路径?

javascript - jsgrid 入门示例不起作用