什么是作用域:
作用域(scope),通常来说就是一段代码程序中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
作用域的作用
作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少名字冲突。
作用域主要分为:
1.全局作用域
2.局部作用域
全局作用域:
变量在函数外定义,即为全局变量。全局变量有全局作用域,网页中所有脚本和函数均可使用。如果变量未有var关键字,该变量为全局变量
例:
// --有var关键字时
var num = 10;
function fun() {
console.log(num)//控制台输出
}
fun();
//-- 无var关键字时
function fun() {
num=10;
}
fun();
console.log(num);
//(执行一个时将另一个注释掉)
全局变量的生命周期:在它声明时初始化,在页面关闭后销毁
局部作用域:
变量在函数内声明,变量为局部作用域。局部变量只能在函数内访问。所以不同的函数变量名可以相同。
例:
//一.变量的调用
function o_fun() {
var num = 10;//赋值
console.log(num);//输出
}
o_fun();//10
console.log(num);//报错
//二.不同函数相同变量名
function o_fun() {
var num = 10;//赋值
console.log(num);
}
o_fun();
function t_fun() {
var num = 20;//赋值
console.log(num);
}
t_fun();
局部变量的生命周期:局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁.