作用域就是一个变量的可用范围,本质是保存变量的一个对象, 为了避免不同范围的变量间互相干扰!
js中只包括2级作用域, 全局作用域和函数作用域
1、全局作用域
保存任何地方都可以访问到的变量的区域——window对象
在全局作用域中保存的变量称为全局变量
全局变量的
优点:可共用,可反复使用
缺点: 易被污染,浪费内存
2. 函数作用域:
保存仅在函数内才可使用的变量的区域,数作用域中保存的变量是局部变量
局部变量的
优点: 仅函数内可用,不会污染全局,且用完就释放,不占用内存!
缺点: 无法重用
注意 :js中没有块级作用域:
块级作用域: if else else if while do while for 这些程序结构的{},在js中都不是作用域
js中if else else if while do while for 这些程序结构的{}都不是作用域!
在js中:
if(){}里写的变量,出了if还能用!
for()里写的变量,出了for还能用