javascript之第四章

变量、作用域、内存问题

1、  基本类型值是指简单的数据段,引用类型值是指可能有多个值构成的对象,(是保存在内存当中的)。String不是引用类型在JavaScript中。

 

2、  基本类型变量是值操作的,直接改变变量的实际值;引用类型的值是引用访问的,操作的是引用而不是直接对象。

 

3、 赋值

基本类型赋值的是对象本身,引用类型变量赋值的是对象的引用。

 

4、 参数按值传递

基本类型变量是传值,引用类型变量传地址。

 

5、 检测变量类型

A、Typeof()                null也属于object对象

但是对于检测引用类型变量来说,还是应该用

B、a instanceof b

alert(person instanceof Object); // 变量 person 是 Object 吗?
alert(colors instanceof Array); // 变量 colors 是 Array 吗?
alert(pattern instanceof RegExp); // 变量 pattern 是 RegExp 吗?

注意:所有引用类型值都是object对象

 

6、 没有块级作用域

A、

if (true) {
var color = "blue";
}
alert(color); //"blue"

B、

for (vari=0; i < 10; i++){
doSomething(i);
}
alert(i); //10

 

7、 垃圾收集

JavaScript采用的是自动垃圾回收机制。局部变量只有字函数运行时才起作用

标识无用变量的方式:

a.       清除标识

垃圾收集器会在运行时为所有存储在内存的变量加上标识,然后去除环境的变量和被环境变量引用变量的标识,之后就清除那些带有标示的标记。

b.      引用计数

记录一个变量被引用的次数,如果为0则回收。可能会产生循环引用的问题

 

8、 解除引用

优化内存占用:将不用的全局对象或者属性手动赋值为null

 

9、 执行环境

全局环境和函数环境,变量执行环境有利于垃圾回收。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值