1.变量作用域是什么鬼?
2.全局变量
全局变量拥有全局作用域(作用范围在整个页面中),在代码的任何地方都有定义。
拥有全局作用域的情形:
(1) 声明在函数外部的变量。eg:
var a;//全局变量
function b(){};
(2) 声明变量时,缺少关键字var。 eg:
function b(){
a=20;//全局变量
}
(3)window对象的使用。(后面我会补充)
3.局部变量
声明在函数内部的变量(包括函数参数部分)
eg:
函数内部的变量:
function b(){
var a=20;//局部变量
console.log(a);
}
函数参数的变量:
function b(i,j){
console.log(i,j);//局部变量
}
注意:在JS中没有块级作用域。
4.全局变量和局部变量的区别
a.作用范围不同全局变量作用范围:全局
局部变量作用范围:函数内部
b.生命周期不同:
全局变量声明周期从被创建直到页面被关闭
局部变量只要在函数被调用时,才出现,函数调用完毕之后,被回收
推荐:尽量使用局部变量,少使用全局变量