1.全局变量
在函数外声明的变量,最外层的函数和和最外层函数外面的变量都是全局变量。
没有用 var声明的变量,为全局变量,即使位置在函数体内部。
var a = 20;
function show() {
} show();
console.log(a);
2.局部变量
只有在函数内声明的变量;
建议优先使用局部变量,因为局部变量生命周期更长(和页面的生命周期一致),占用内存时间较长,局部使用完就可以等待回收,更加合理。
function show(a) {
var a;
console.log(a);
} show(2);
知识点提升
变量和函数的声明提升:也叫预解析机制
所以输出是undefined。
变量的提升:js执行过程中,遇到变量,会将变量声明提升到函数的第一行,只是提升声明,而不能赋值。
在代码中是禁止出现单独的元素变量的:var a=1;或者是a=1;或者是var a是可以的;但 绝对不能单独出现 a。前面两种是已经声明,并有确定的值。