Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 为什么浏览器没有';你没看见我的模块吗?_Javascript_Ecmascript 6 - Fatal编程技术网

Javascript 为什么浏览器没有';你没看见我的模块吗?

Javascript 为什么浏览器没有';你没看见我的模块吗?,javascript,ecmascript-6,Javascript,Ecmascript 6,谷歌浏览器58.0.3029.110(64位) ECMAScript 6 我学习JavaScript并阅读理解ECMAScript 6的书。ECMAScript 6定义了模块概念 我编写了两个js文件,并将它们附加到我的html文件中。其中一个是脚本,另一个是模块。但是Google Chrome没有看到我的js模块。为什么会这样 这是我的html: <!DOCTYPE html> <html> <head> <meta charset='utf-

谷歌浏览器58.0.3029.110(64位)
ECMAScript 6

我学习JavaScript并阅读理解ECMAScript 6的书。ECMAScript 6定义了模块概念

我编写了两个js文件,并将它们附加到我的html文件中。其中一个是脚本,另一个是模块。但是Google Chrome没有看到我的js模块。为什么会这样

这是我的html:

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'/>
    <title>Sandbox</title>
    <script src='./js/module.js' type='module'></script>
    <script src='./js/script.js' type='text/javascript'></script>
</head>
<body>
</body>
</html>
这是我的模块:

/* ECMAScript 6
 * ./js/module.js
 */

function internalFunction(){
    console.log('I am internal!');
}

export function exportedFunction(){
    console.log('I am exported!');
}
结果是:


ES6模块目前在“实验Web平台”标志后面提供。它们在“稳定”Chrome中不可用。

ES6模块目前在“实验性Web平台”标志后面可用。它们在“稳定”浏览器中不可用。

大多数浏览器尚不支持模块。Safari 10.1实现了这些功能。在Chrome Canary中,您需要启用@SkinnyJ解释的支持

但您仍然需要修复代码中的一些问题:


沙箱
/*ECMAScript 6
*/js/module.js
*/
函数内部函数(){
log(“我是内部的!”);
}
导出函数exportedFunction(){
内部函数();
log(“我被导出了!”);
}
/*ECMAScript 6
*/js/script.js
*/
从“/module.js”导入{exportedFunction};
函数scriptFunction(){
log(“我是脚本函数!”);
}
脚本函数();
exportedFunction();

这在Safari 10.1和Chrome Canary中都可以使用chrome://flags/#enable-已启用实验性web平台功能。

大多数浏览器尚不支持模块。Safari 10.1实现了这些功能。在Chrome Canary中,您需要启用@SkinnyJ解释的支持

但您仍然需要修复代码中的一些问题:


沙箱
/*ECMAScript 6
*/js/module.js
*/
函数内部函数(){
log(“我是内部的!”);
}
导出函数exportedFunction(){
内部函数();
log(“我被导出了!”);
}
/*ECMAScript 6
*/js/script.js
*/
从“/module.js”导入{exportedFunction};
函数scriptFunction(){
log(“我是脚本函数!”);
}
脚本函数();
exportedFunction();

这在Safari 10.1和Chrome Canary中都可以使用chrome://flags/#enable-已启用实验性web平台功能。

模块中存在导出并不意味着它导出到全局范围。事实上,导出到全局的想法违背了模块的目的。我认为浏览器中还不支持模块。如果我阅读正确,它将在chrome 60之前不可用。。。。我认为您必须首先使用babel来传输您的代码,因为您使用的是es6/es2015~他们在书中没有解释吗?模块中存在导出并不意味着它导出到全局范围。事实上,导出到全局的想法违背了模块的目的。我认为浏览器中还不支持模块。如果我阅读正确,它将在chrome 60之前不可用。。。。我想你必须首先使用babel来传输你的代码,因为你使用的是es6/es2015~他们在书中没有解释吗?
/* ECMAScript 6
 * ./js/module.js
 */

function internalFunction(){
    console.log('I am internal!');
}

export function exportedFunction(){
    console.log('I am exported!');
}