一、全局变量:
- 声明的变量是使用 var 声明的,那么这个变量就是全局变量,全局变量可以在页面的任何位置使用。
var num1 = 20;//全局变量
for(var i =0;i<10;i++){
var num =10;//全局变量
};
console.log(num);//10
console.log(num1);//20
- 除了函数以外 ,其他的任何位置定义的变量都是全局变量。
var num1= 20;//全局变量
function f(){
var num3 =30;//局部变量
console.log(num3);//30
}
f();
console.log(num1);//20
console.log(num3);//报错,未定义num3
- 如果页面不关闭,那么就不会释放,就会占空间,消耗内存
补充课外小知识:
块级作用域:一对大括号就可以看成是一块,在这块区域中定义的变量,只能在这个区域中使用,
但是在js中在这个块级作用域中定义的变量,外面也能使用
说明:js没有块级作用域,只有函数除外
二、局部变量:在 函数内部 定义的变量,是局部变量,外面不能使用
三、隐式全局变量:声明的变量 没有var ,就叫隐式全局变量
function f2(){
num5 =10;//隐式全局变量
console.log(num5);//10;
}
f2();
console.log(num5);//10
全局变量和隐式全局变量的区别:
- 全局变量是不能被删除的,隐式全局变量是可以被删除的
- 定义变量使用var是不会被删除的,没有var是可以删除的
var num6 = 100;
num7 = 200;
delete num6;
delete num7;
console.log(num6);//100 全局变量不能被删除
// console.log(num7);//报错,num7 undefined
全局作用域:全局变量的适用范围
局部作用域:局部变量的适用范围