首先,全局作用域是指整个JAV阿script标签或者一个单独的js文件。而局部作用域通常是指一个函数的内部,而这个代码名字只在函数内部起效果。
<script>
var num = 10;
console.log(num);
// 打印结果为10
function Num() {
var num = 20;
console.log(num);
}
Num();
// 调用函数打印结果为20
console.log(num);
// 打印结果为10
</script>
而全局变量是指在整个全局作用域中生效,包括函数内部
<script>
// 我们在全局作用域下声明一个变量
var num = 10;
console.log(num);
// 打印结果为10
function Num() {
//声明一个函数来打印这个全局变量的值
console.log(num);
}
Num();
// 调用函数打印结果为10 表明全局变量在局部作用域下依然可以生效
</script>
而局部变量是指在局部作用域下声明的变量,只在局部作用域下生效,在全局作用域下则没有效果,比如第一个代码段,在函数内部声明同样的num变量赋予不同的值,但这个值最终只在函数内部生效,并没有改变全局变量的值,代码最后打印全局变量的值仍然是10。
但此时还有一个特殊情况&