Javascript 由';出口';关键词?

Javascript 由';出口';关键词?,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在阅读有关ES2015模块的内容,并试图确保我了解这一新功能 既然没有什么比更像“严格使用”,那么浏览器如何确定.js文件是ES2015module v.s.ES5文件和一堆全局文件?是否只存在至少一条“export”语句 既然没有什么比“严格使用”更合适的了,那么浏览器如何确定.js文件是一个ES2015模块v.s.一个包含大量全局变量的ES5文件?是不是至少有一个“出口”声明 当你问这个问题时,它还没有被决定,但它是在几年后:属性被使用: <script type="modul

我正在阅读有关
ES2015
模块的内容,并试图确保我了解这一新功能

既然没有什么比
更像“严格使用”
,那么浏览器如何确定.js文件是
ES2015
module v.s.
ES5
文件和一堆全局文件?是否只存在至少一条“
export
”语句



既然没有什么比“严格使用”更合适的了,那么浏览器如何确定.js文件是一个ES2015模块v.s.一个包含大量全局变量的ES5文件?是不是至少有一个“出口”声明

当你问这个问题时,它还没有被决定,但它是在几年后:属性被使用:

<script type="module" src="./mod.js"></script>

您还需要包括一个路径(不仅仅是
src=“mod.js”
),除非您使用一个路径(在2019年7月撰写本文时,这个路径相对较新,我认为还没有任何浏览器支持它们)

如果在非模块的内容中使用
import
export
,则会出现语法错误


在Node.js中,它有自己的CommonJS(CJS)模块系统,ECMAScript模块(ESM)用以下两种方式之一表示:

  • 通过在最近的
    package.json
    中使用
    “type”:“module”
    ,或

  • 通过为脚本提供扩展名
    .mjs
    ,而不是
    .js


  • (如果最近的
    package.json
    “type”:“module”
    ,您仍然可以拥有一个属于CJS模块的脚本,方法是给它扩展名
    .CJS
    )详细信息。

    根据,模块不能放在
    脚本
    标记内,它们必须放在
    模块
    标记内。因此,由
    script
    标记加载的代码不能被视为模块,而由
    module
    标记加载的代码必须是模块。

    甚至连
    标记的草稿都没有,是吗?@zerkms:No。
    // This file is interpreted as ES2015 module
    function fun1() {...}
    function fun1() {...}
    export default function(){...}
    
    <script type="module" src="./mod.js"></script>