gpt4 book ai didi

javascript - 脚本范围的目的是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 06:00:24 25 4
gpt4 key购买 nike

在 DevTools 控制台中检查函数的作用域时,我注意到一个“脚本”作用域。经过一些研究,它似乎是为 letconst 变量创建的。

没有 constlet 变量的脚本中函数的作用域:

the global scope

带有 let 变量的脚本中函数的作用域:

a global scope and a script scope

然而,下面的代码在控制台中打印了 1 - 脚本作用域中的变量仍然可以从其他脚本访问:

<script>let v = 1</script>
<script>console.log(v)</script>

我听说过 ES6 模块中的顶级变量无法从模块外部访问。这就是示波器的用途,还是它还有其他用途?

最佳答案

当您在顶层(即不在函数内部)使用 var 声明一个变量时,它会自动成为一个全局变量(因此在浏览器中您可以将其作为 的属性访问)窗口)。这与使用 letconst 声明的变量不同——它们不会成为全局变量。您可以在另一个脚本标记中访问它们,但不能将它们作为 window 的属性进行访问。

看这个例子:

<script>
var test1 = 42;
let test2 = 43;
</script>
<script>
console.log(test1); // 42
console.log(window.test1); // 42
console.log(test2); // 43
console.log(window.test2); // undefined
</script>

关于javascript - 脚本范围的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com