作用域:
在es5中没有块状作用域
变量的作用范围
<script>
var a=10;
function show(){
console.log(a);全局变量//在函数外设置的变量
var b=20;
console.log(b);局部变量//在函数内设置的变量;
}
show();
</script>
根据作用域不同:
1)全局变量
在整个文档中都能被访问到,
声明变量时没有使用var
2)局部变量
变量在不同函数的情况下名字可以相同。
遵循就近原则。
<script>
function shwo(){
a=10;//升级了 全局变量
console.log(a);
}
shwo();
console.log(a);
</script>
在没有用var来定义函数时,这时候变量将会变为全局变量,所以在用函数前需要先定义。
</script>
a();
var a=function(){
document.write('hello world');
};
</script>
总结:
建议:优先使用局部变量
因为全局变量生命周期更长(和页面的生命周期一致),占用内存时间较长,
局部变量使用完毕就可以等待回收,更加合理