Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ES6导出上的意外令牌_Javascript_Ecmascript 6_Es6 Modules - Fatal编程技术网

Javascript ES6导出上的意外令牌

Javascript ES6导出上的意外令牌,javascript,ecmascript-6,es6-modules,Javascript,Ecmascript 6,Es6 Modules,我试图了解ES6导出是如何工作的 以下是两个本地文件: main.html: 预期结果:包含“Hello”文本的警报。实际结果:错误: module.js-第1行:意外令牌导出 main.html-第3行:意外标记{ 如何让它工作 PS.在Chrome 67中测试。Chrome中添加了对JavaScript模块的全面支持。以下是您在文档中明显遗漏的重要部分: 模块最终必须通过type=“module”包含在HTML中, 它可以显示为内联或外部脚本标记 您不必使用第一个脚本;import将引导浏览

我试图了解ES6导出是如何工作的

以下是两个本地文件:

main.html:

预期结果:包含“Hello”文本的警报。实际结果:错误:

module.js-第1行:意外令牌
导出

main.html-第3行:意外标记
{

如何让它工作


PS.在Chrome 67中测试。

Chrome中添加了对JavaScript模块的全面支持。以下是您在文档中明显遗漏的重要部分:

模块最终必须通过type=“module”包含在HTML中, 它可以显示为内联或外部脚本标记

您不必使用第一个脚本;
import
将引导浏览器下载所需的模块。因此这就足够了:

<script type="module">
    import {hello} from './module.js';
    let val = hello();
    alert(val);
</script>

从'./module.js'导入{hello};
让val=hello();
警报(val);

但是,有一个警告:您将无法在Chrome中直接为文件系统中的模块提供服务-您需要设置“常规”HTTP服务器或应用中所述的解决方法。

我猜该错误是由于缺少浏览器支持:/all browser(和versions)无法支持它。在使用之前,应先将其传输;例如:babelYou应使用类似babelAdd的传输工具
type=“module”
传输到您的
tags@JonasW.在Chrome67中测试。我倾向于认为ES6导出在Chrome中工作,尽管我不确定。
export function hello() {
    return 'Hello';
}
<script type="module">
    import {hello} from './module.js';
    let val = hello();
    alert(val);
</script>