ECMAScript 变量、作用域和内存

  变量、作用域和内存

变量

1变量——松散类型

基本类型值——简单的数据段

引用类型值——保存在内存中的对象

创建变量并赋值,添加属性与方法

var count=10;  //基本类型值

var person=new Object();  //引用类型值

person.name="Nicholas"//添加属性与方法

person.age=25;

person.sayName()=function(){

    alert(this.name);

};

2复制变量值

基本类型值——在变量对象上创建一个新值,然后把该值复制到新变量分配的位置上

var num1=5;

var num2=num1;
alert(num1);  //5

alert(num2);  //5

引用类型值——两个变量实际上将引用同一个对象

var obj1=new Object();

var obj2=obj1;

obj1.name="Nicholas";

alert(obj2.name); //"Nicolas"

3传递参数——按值传递

基本类型

function addTen(num){

    num+=10;

    return num;

}

var count=20;

var result=addTen(count);

alert(count); //20,没有变化

alert(result); //30

引用类型

function setName(obj){

    obj.name="Nicholas";

    obj=new Object();  //重写obj

    obj.name="Greg";

}

var person=new Object();

setName(perosn);

alert(person.name); //"Nicholas"

可以将函数的参数想象成局部变量,按值传递

4检测类型

基本类型——typeof操作符

引用类型——instanceof操作符

 执行环境及作用域

执行环境——定义了变量或函数有权访问的其他数据,决定了它们各自的行为

变量对象——环境定义的所有变量和函数都保存在这个对象中

作用域链

JavaScript无块级作用域

垃圾收集

标记清除

引用计数

管理内存——解除引用

转载于:https://my.oschina.net/u/3240534/blog/856513

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值