作用域和作用域链

什么是作用域

作用域决定了代码区块中变量和其他资源的可见性,**作用域就是一个独立的独立的地盘,让变量不外泄.暴露出去,作用域最大的用处就是隔离变量,不同作用域下变量名不会冲突
 

作用域可以分为

1.全局作用域,

2.私有作用域

3.es6块级作用域

 全局作用域

当打开页面的时候,会提供一个供js代码执行的环境,全局作用域,会默认提供一个最大的window对象。
【全局变量】:在全局作用域中声明的变量就是全局变量,其中下面的a 和fn 就是全局变量
【全局变量和window关系】 在全局作用域中声明的变量:var、function(除去es6的),相当于给window上添加了属性,属性名就是变量名,属性值就是变量值
 调用window 下的方法时,可以省去window不写:
 

window.alert("1");
alert("1");

window.Number("1");
Number("1");


var a=3; // a是全局变量
function fn(){ // fn 是全局变量
      var num=3;
      function f1(){
      }
}

console.log(window.a);
console.log(window.fn);

所有未定义直接赋值的变量自动声明为拥有全局变量

所有window对象的属性拥有全局作用域

所有window对象拥有全局作用域

全局作用域的弊端:如果我们写了很多行代码,变量定义没有用函数包括,那么他们就全部在全局作用域中,这样会污染全局命名空间容易引起命名冲突

函数作用域(私有作用域)

【私有变量】:

  • 形参
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端 贾公子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值