簡體   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