JS变量、作用域和内存问题

一、基本类型和引用类型

1. 基本类型值指的是简单的数据段,引用类型值指那些可能由多个值组成的对象。

2. 基本类型值按值访问,引用类型值按引用访问:

按值访问对于基本类型而言,不同变量指向的地址空间都是不同的,即使把一个变量赋值给另一个变量,接收到时变量指向的内容而不是内存地址;
按引用访问对于对象类型而言,不同的变量指向的地址空间可能是相同的,当一个变量赋值给另一个变量时,接收到的变量的地址,而不是内容;

 

二、执行环境与作用域

1. 执行环境定义了变量或函数有权访问的其他数据。

2. 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。

3. 各个执行环境之间可能是父子关系或者并列关系,子执行环境有权访问父执行环境,反之则不行,同级执行环境也无权互相访问。

4. with语句可将其参数对象对应的执行环境的访问权限添加到当前一级环境中。

5. 没有块级作用域,一个对象对应一个执行环境。

 

三、垃圾收集

1. JavaScript具有自动垃圾收集机制。通常由两个策略:标记清除(给当前不使用的值加上标记,然后再回收其内存)、引用计数(跟踪记录所有值被引用的次数)

2. 通过将值设置为null来释放内存——解除引用

 

转载于:https://www.cnblogs.com/wangxinwen/p/9519451.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值