- 5种基本数据类型
- Undefined, Null, Boolean, Number, String,
- 按值访问变量(引用类型按引用访问),不同副本
- 所有函数均是按值传递参数,
- 针对基本类型的传递不做举例,参数即一个新的副本
- 针对引用类型,以下是因为传递的值是针对于对象的引用,所以在函数内部的修改在外部也可以体现,而对按值传参最好的解释就是加上注释的代码后,输出不变。因为这时obj是一个新对象的引用,在内部的修改在外部无法体现
function seNmae(obj){ obj.name = "a"; //obj = new Object(); //obj.name = b; } var person = new Object(); setName(person); console.log(person.name); //"a"
- typeof检测基本数据类型,instanceof判断对象是谁的实例
- 执行环境
- 全局执行环境(window对象)
- 由执行环境构成作用域链,作用域链只能向后查找
- 延长作用域链(函数和try-catch, with)
- js没有块级作用域!!
- 变量声明
- 使用var声明的变量会自动添加到最接近的环境中。没有使用声明的变量会自动添加到全局环境(严格模式下会报错)
- 垃圾收集
- 自动垃圾收集机制,无需手动跟踪内存的使用情况,机制是找出不被引用的变量,释放他们的内存
- 标记清除
当变量进入环境,标记为进入环境,离开环境,标记为离开环境。垃圾收集器在运行的时候会给存储在内存种的变量加上标记,然后会去掉环境中的变量以及被环境中的变量引用的变量的标记,而再此之后被加上标记的变量将被视为准备删除的变量。 - 引用计数
跟踪记录每个值被引用的次数,当声明一个变量并且将一个引用类型值赋给该变量时,则这个值的引用次数就是1,如果同一个值又被赋给另一个变量,则该值的引用次数加1,如果包含这个值引用的变量又取得另外一个值,则这个值的引用次数减一,为0即回收 - 循环引用
- 手动解除引用让页面获取更好的性能(方便垃圾收集器下一次自动回收)
- 标记清除
- 自动垃圾收集机制,无需手动跟踪内存的使用情况,机制是找出不被引用的变量,释放他们的内存
js高程复习--变量,作用域,内存
猜你喜欢
转载自blog.csdn.net/studyForWhat/article/details/89074379
今日推荐
周排行