<script> 标签和 .js 文件的【最外层】就是所谓的全局作用域,在此声明的变量在函数内部也可以被访问。
<script>// 此处是全局function sayHi() {// 此处为局部}// 此处为全局</script>
全局作用域中声明的变量,任何其它作用域都可以被访问,如下代码所示:
<script>// 全局变量 namelet name = '小明';// 函数作用域中访问全局function sayHi() {// 此处为局部console.log('你好' + name);}// 全局变量 flag 和 xlet flag = true;let x = 10;// 块作用域中访问全局if(flag) {let y = 5;console.log(x + y); // x 是全局的}</script>
总结:
- 为
window对象动态添加的属性默认也是全局的,不推荐! - 函数中未使用任何关键字声明的变量为全局变量,不推荐!!!
- 尽可能少的声明全局变量,防止全局变量被污染
JavaScript 中的作用域是程序被执行时的底层机制,了解这一机制有助于规范代码书写习惯,避免因作用域导致的语法错误。
