【作用域、变量】

作用域:变量在某个范围内起作用和效果,分为全局作用域(script内部),和局部作用域(函数内部)

作用:提升程序可靠性,减少命名冲突

1、全局变量:全局作用域下的变量,在全局下都可以使用,在浏览器关闭时才会销毁,比较占资源

注意:函数内部没有申明,直接赋值的变量,也属于全局变量(不规范,不推介使用)

案例:
 function aaa(){
   a=10; }//没有用var定义变量,默认为全局变量
aaa();
alert(a); //10
 
function aaa(){
   a=b=10; 
}

 aaa();

 alert(a);//10
 alert(b)//10

2、局部变量:函数内部的变量,只能在函数内部使用,执行完毕就会销毁,比较节约资源

注意:函数的形参也是局部边变量

3、注意事项:

1)函数内部可以访问外部的全局变量,但外部的全局变量不能访问函数内部的局部变量

案例:

var a=10;//全局变量
function aaa(){ 
    alert(a);// 函数内部可以访问外部的全局变量
};
aaa();//10
 
 
function aaa(){
var a=10
};局部变量,在函数运行结束后已销毁
aaa();
alert(a)// a is not defined
 
var a=10; //全局变量
function aaa(){ 
 alert(a);
};            
function bbb(){var a=20;//局部变量
 
 
var a=10; //全局变量
function aaa(){ 
 alert(a);
};            
function bbb(){
var a=20;//局部变量
aaa();
}
bbb();//10
2)变量的查找是就近原则去寻找,定义的var变量;内部访问外部变量时,采用就近查找原则

3)变量的声明被提前到作用域顶部,赋值保留在原地

  a/变量域解析(变量提升):所有变量的申明提升到当前作用域的最前面,不提升赋值

  b/函数域解析(函数提升):所有函数的申明提升到当前作用域的最前面,不调用函数

案例:

function aaa(){
  alert(a);//变量a的赋值保留在原地 undefined
  var a=20;
}
aaa(); 
var a=10;
 

function aaa(){
  alert(a);// undefined
  var a=20;
}
aaa()
 
var a=10;
  function aaa(a){ 
        alert(a);//形参a为局部变量
        var a=20    } 
    aaa(a);//10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值