[英]Do I need a semicolon after a named export function declaration
首先,這不是關於ASI的問題。 我不是在問這里是否適用自動分號插入(好吧,我有點喜歡,但是這個開場陳述是為了避免我是否應該使用分號之間的爭論,因為asi會照顧它我...)
我知道在函數聲明后不要加分號...
function foo() {
// do stuff
} // no semicolon
但是在export
函數聲明后我需要一個分號嗎?
export function foo() {
// do stuff
} // semicolon or not to semicolon?
在任何一種情況下,我也想知道為什么。
不,你不需要分號,雖然添加一個也不會有任何傷害。
如果我們查看ES6規范 ,您將看到此簽名被視為聲明,並且與正常的函數聲明一樣,在它之后不需要分號:
export Declaration
在該文檔中注明了需要由分號(無論是明確的還是隱式的)所遵循的語句。 例如:
export *
FromClause;
那里;
是強制性的。 在聲明中,它不是。 當然,插入分號不會造成任何傷害; JS解釋器會將其視為空語句。
不,你這里不需要分號。 從MDN查看此示例:
export default function() {} // or 'export default class {}' // there is no semi-colon here
另請參閱ECMAScript規范 :
句法
ExportDeclaration : export * FromClause ; export ExportClause[~Local] FromClause ; export ExportClause[+Local] ; export VariableStatement[~Yield, ~Await] export Declaration[~Yield, ~Await] export defaultHoistableDeclaration[~Yield, ~Await, +Default] export defaultClassDeclaration[~Yield, ~Await, +Default] export default[lookahead ∉ { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await] ;
如你所見, Declaration
后沒有分號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.