根据作用域不同变量分全局变量和局部变量
一般来说声明在最外面的是全局变量,声明在函数里面的是局部变量
但要注意的是,for循环里面定义的var变量是全局变量
<SCript>
var num1 = 1;//全局变量
for(var i=0;i<3;i++){
var num3 = 5;//全局变量
}
console.log(i);//for循环的i也算全局变量
console.log(num3);
</SCript>
输出结果
还有,虽然函数内部声明的变量是局部变量,但在函数内部没有用var声明而直接赋值的变量也是全局变量
function test(){
var num2 = 2;//局部变量
num4 = 4;//全局变量
}
test();//注意要执行函数num4才生效
console.log(num4);
从执行效率来看全局变量和局部变量的区别
- 全局变量只在浏览器关闭时才会销毁,比较占内存资源
- 局部变量在执行完函数后就会销毁,比较省内存
个人学习笔记,如有差误欢迎指正