Javascript 是脚本类型为的变量;模块"&引用;无形的;?

Javascript 是脚本类型为的变量;模块"&引用;无形的;?,javascript,html,object,ecmascript-6,module,Javascript,Html,Object,Ecmascript 6,Module,假设我有以下代码: //myjs.js 让testingVisibility=“hello” 因为您还没有导出它们-导出是type=“module”的全部要点。只需使用普通脚本: <script src="myjs"></script> 然后在你的HTML中 <script type="module"> import { testingVisibility } from "./myjs"; //Do stuff with testingVi

假设我有以下代码:

//myjs.js
让testingVisibility=“hello”

因为您还没有导出它们-导出是
type=“module”
的全部要点。只需使用普通脚本:

<script src="myjs"></script>
然后在你的HTML中

<script type="module">
    import { testingVisibility } from "./myjs";
    //Do stuff with testingVisibility
</script>

从“/myjs”导入{testingVisibility};
//使用testingVisibility做一些事情

如果您导出它,它应该是可用的。@Derek我明白了。就是这样。除非导出并导入到另一个特定脚本,否则
script type=“module”
中的所有变量和函数都不可用,对吗?由于导入脚本还必须附加
type=“module”
,我将永远无法通过控制台访问所述变量,是吗?您也可以将其导出到全局空间,如
window.testingVisibility=testingVisibility
,然后它就有点像全局。每个模块都有自己的作用域。@FelixKling我明白了!所以基本上,模块创建了自己的函数,比如作用域,这意味着
var
let
声明的任何变量都不能在所述模块之外访问。这些变量通常不能在所说的类似函数的范围之外访问(如果我们讨论的是函数,那么获取它们的值的唯一方法就是返回它们)。但是,对于模块,我们可以通过使用导出和导入轻松地提供对其他模块的可访问性(功能如作用域)。谢谢你的回答。这意味着我将无法通过浏览器控制台访问模块中的变量,对吗?@RichardW对,只要你不显式地将它们分配给
窗口
<script type="module">
    import { testingVisibility } from "./myjs";
    //Do stuff with testingVisibility
</script>