据我了解,在Javascript中用let
创建的变量不能是全局的。我认为这意味着该变量仅存在于该特定文件中。
但是,当我创建一个简单/人为的示例时:
A.js:
let a = 5;
B.js:
console.log(a);
index.html:
<script type="text/javascript" src="A.js"></script>
<script type="text/javascript" src="B.js"></script>
它记录5!奇怪的是,如果我登录window.a
时,日志记录为undefined
,那么将不创建全局变量。
我的问题是,变量如何在文件之间共享而不成为全局变量?
答案 0 :(得分:3)
它停留在当前作用域内,即最外部的块作用域(或Bergi很好地提到的全局作用域),所以这将起作用
<script>
let world = 'world';
</script>
<script>
console.log( `hello ${world}` );
</script>
否则就不会
<script>
{
let world = 'world';
}
</script>
<script>
console.log( `hello ${world}` );
</script>
使用2个不同的文件真的没关系。最后,所有加载的脚本都相互重叠,优化并执行
答案 1 :(得分:1)
这是全局范围内的常规变量。
使用多个脚本源并不意味着使用多个解释器。