繁体   English   中英

Node.js中是否需要逗号?

[英]Are commas necessary in Node.js?

在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中,如果你不写分号 ; 它们将被无形插入。 你可能并不总是喜欢他们去的地方。

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

有关详细信息,请仔细阅读此Google搜索的结果。 我们长期以来一直在争论这个话题。


这是一个为什么这比第一眼看上去更复杂的例子。 虽然技术上并不要求用分号结束每个语句,但在某些情况下你必须或事情中断。 在大多数代码库中,您无法完全省略它们。

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是不是一个功能?!?它不应该是一个功能!“

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

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

Node.js使用V8引擎来读取您的代码,因此它几乎与Google Chrome中的行为相似。 也就是说,不使用分号通常是一种不好的做法。 解释器将尝试理解您的代码,并且可能有时会弄错(由您的错误)。

请查看此内容以获得完整说明: 您是否建议在JavaScript中的每个语句后使用分号?

这个非常晚的答案只是为那些可能读到这一点的其他人提供了明确的混淆。

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

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

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

正在隐式转换为:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM