2017-06-02 44 views
1

我試圖在Chrome Dev(v60,在撰寫本文時)啓用「Experimental Web Platform」標誌來使用JavaScript模塊。`出口默認讓foo = ...`拋出「意外的嚴格模式保留字」

當我嘗試導入該模塊:

export default let foo = 10; 

我收到此錯誤信息:

Uncaught SyntaxError: Unexpected strict mode reserved word 

它工作正常,沒有default關鍵字。而這個工作太細:

let a = 10; 
export default a; 

MDN沒有明確說,export default ...符號被允許與letvarconst等,但它們確實給人以函數的例子是這樣的:

export default function (…) { … }. 

和變量是這樣的:

export let name1 = …, name2 = …, …, nameN; 

問題:當前規範不可能像使用函數和類一樣使用default關鍵字導出常規變量嗎?

回答

2

exportstrictly defined syntax,默認輸出正確的語法是

export default expression; 

let foo = 10不是一個表達式,但聲明。它可用於命名導出:

export let name1, name2, …, nameN; 

對於默認導出名稱是不需要的。

類似於export default function (…) { … },它應該是

export default 10; 
+0

啊我明白了,不知道我只是做'出口默認10;'!但是爲什麼他們在[MDN文章](https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export)中有這個例子呢? 'export let name1 = ...,name2 = ...,...,nameN;' – JoeRocc

+0

正如答案所說,它是* named exports *,not for * default *('default'實際上是名稱)。 – estus

+0

「'default」實際上是名稱「 - 合理!謝謝! – JoeRocc

相關問題