码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript高级程序设计-第四章-变量、作用域和内存问题

时间:2014-05-30 03:07:45      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:c   style   java   a   ext   color   

 

ECMAScript变量
基本类型:5 引用类型
存于内存栈 实际对象位于内存堆
按值访问,可操作保存在变量中实际的值 js不能直接操作对象的内存空间,而是操作它的引用
不可添加属性和方法 可添加属性和方法
变量复制是一个实际的值,互不干扰 变量复制是一个指针,指向相同的对象,改变其中一个变量会影响另一个
Undefined  
Null  
Boolean  
Number  
String  
   
   

 

variable typeof v v instanceof constructor
var v; undefined   false
var v=true; boolean   false
var v=23; number   false
var v="string" string   false
var v=null; object   false
var v=new Object(); object  
 1||0
var v=function(){} function  1||0
var v=//; function or object  1||0

 

ECMAScript中所有函数的参数都是按值传递的,参数实际上是函数的局部变量。

 

作用域:

执行环境有全局执行环境和函数执行环境之分

每个执行环境都有一个对应的变量对象,变量对象的作用域链,用途是保证 对 执行环境有权访问的变量和函数 的有序访问。

在with语句,及try-catch语句中,会在作用域链前端生成一个临时变量对象,width为指定对象,catch会创建新的变量对象。

js中没有块级作用域

 

垃圾回收:

1:标记清除(进入或离开执行环境)

2:引用记数(被引用+1,反之-1),不能避免循环引用的问题(ie9-的COM)

v=null,解除引用

JavaScript高级程序设计-第四章-变量、作用域和内存问题,布布扣,bubuko.com

JavaScript高级程序设计-第四章-变量、作用域和内存问题

标签:c   style   java   a   ext   color   

原文地址:http://www.cnblogs.com/inmay/p/3756937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!