第四章:变量、作用域和内存问题

4.1.1动态的属性
var person=new Object();
person.name="lh";
alert(person.name);
*不可以给基本类型添加属性


4.1.2复制变量值
基本类型:在复制的时候是两个独立的变量
var num1=5;
var num2=num1;//改变num2的值不会改变num1


引用类型:指向的是同一个对象,所以任何一方改变会使另外一个对象改变
var obj1=new Object();
var obj2=obj1;
obj1.name="tom";
alert(obj2.name);//tom


4.1.3传递参数
书上的意思是,函数的参数只能按值传递,但是实际上可以理解,对象的传递是按引用传递的
function addTen(num){
num+=10;
return num;
}
var  count=20;
var result=addTen(count);
alert(count);//20,没有变化
alert(result);


function setName(obj){
obj.name="jack";
}
var person=new Object();
setName(person);
alert(person.name);


4.1.4检测类型
var s="javl";
alert(typeof s);//string


检测引用类型时,可以使用instanceof


4.2.2查询标识符
当在某个环境中为了读取或写入而引用一个标识符时,必须通过搜索来确定该标识符实际代表什么。搜索过程中从作用域的前端开始,向上逐级查询,如果在局部
环境找到了改标识符,则停止,如果找不到,继续往上找,实在找不到就是未定义,尚未声明。
var color="blue";
function getColor(){
return color;
}
alert(getColor());//blue


ex2;
var color="blue";
function getColor()
{
var color="red";
return color;
}
alert(getColor());//red



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值