2015-12-28 62 views
2

我閱讀ES2015模塊,並試圖以確保我的理解這個新功能。ES2015模塊與ES5全局變量由'export'關鍵字決定?

由於沒有什麼像"use strict",瀏覽器如何確定.js文件是ES2015模塊v.s.一個ES5文件與一羣全局?是否至少存在一個「export」聲明?


// This file is interpreted as ES5 with globals 
function fun1() {...} 
function fun1() {...} 

// This file is interpreted as ES2015 module 
function fun1() {...} 
function fun1() {...} 
export default function(){...} 

回答

2

因爲沒有什麼能像 「使用嚴格」,如何在瀏覽器確定.js文件是ES2015模塊V.S.一個ES5文件與一羣全局?

如何瀏覽器確定這不是,據我所知,還沒有確定。還有的是一個module元素從script元素不同的說法,但沒有module元素defined (yet?)。目前尚不清楚module元素是必需的; script元素可以使用import,並且可以從另一個文件加載模塊而不需要新的元素類型。但這是關注這個空間的問題; MDN says目前還沒有瀏覽器支持import。但它可能會是如何使用它,因爲它在非瀏覽器世界,並允許捆綁。

在非瀏覽器世界中,它是由它的使用方式決定的:如果它是import的目標,那麼它在導入時會被視爲模塊。如果您只是像其他腳本一樣加載和運行它,它就會像其他任何腳本一樣處理。

0

根據this page,模塊不能進入script標籤內,它們必須進入module標籤內。因此,由script標籤加載的代碼不能被視爲模塊,並且module代碼加載的代碼必須是模塊。

+0

甚至沒有了''標籤的草案是什麼呢? – zerkms

+0

@zerkms:沒有,[尚未](https://html.spec.whatwg.org/multipage/indices.html#elements-3)。 –