js第6课 js的作用域和闭包

作用域和闭包:

在 JavaScript 中, 作用域为可访问变量对象,函数的集合。

局部作用域

因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量

局部变量在函数开始执行时创建函数执行完后局部变量会自动销毁。

全局作用域

变量在函数外定义,即为全局变量。

全局变量全局作用域: 网页中所有脚本和函数均可使用。

如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量

JavaScript变量的生命周期:

JavaScript 变量生命周期在它声明时初始化。

局部变量在函数执行完毕后销毁。

全局变量在页面关闭后销毁。

 

注:全局变量,或者函数,可以覆盖 window 对象的变量或者函数。

闭包:

1.要了解闭包,首先应该了解js的垃圾回收机制

垃圾回收机制:

所有的环境里不在有某个对象/数据的引用时,这个数据会自动被回收 ( 全局变量除外,不管有没被引用 )

何为闭包?形成闭包的条件?闭包的作用是什么?

1.函数嵌套函数( 有作用域的嵌套 );

2.内部函数使用了外部函数的变量/参数;

作用:内部函数使用了外部函数的变量或参数会被永久的保存下来

function fn(){
    var a = 0;
    a++;
    alert( a );
}
fn() 当这个函数执行完了之后,后面没有再调用了,那么函数里面就会被删除。

闭包的优缺点:

优点:使用的变量会被永久存储(在关闭程序释放),我可以对同一个变量连续性进行多次操作。

缺点:使用的变量会被永久保存的,当大量使用闭包时,会对内存的消耗有点点高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值