《javascript高级程序设计》——变量和作用域

1.ECMAscript包含两种不同类型的值:基本类型值和引用类型值。基本类型值有5种:Undefined、Null、Boolean、String、Number。它们是按值访问的,可以操作保存在变量中的实际的值。而在操作对象时,访问的实际是变量的引用而不是实际的值,因此引用类型的值是按引用访问的。

2.只能给引用类型值动态地添加属性:

var name="zx";
name.age=19;
alert(name.age);//Undefined

3.复制基本类型的值时,会创建一个新值,然后分配给新变量。
复制引用类型的值时,两个变量实际上会引用同一个对象。

var obj1=new Object();
var obj2=obj1;
obj2.name="zx";
alert(obj1.name);//zx

4.ECMAscript中所有函数的参数都是按值传递的。

function setName(obj){
    obj.name="zx";
    obj=new Object();
    obj.name="xz";
}

var person=new Object();
setName(person);
alert(person.name);//zx

5.检测类型。

var s="zx";
alert(typeof s);//String

var obj=new Object();
alert(obj instanceof Object);//true

6.没有块级作用域。

if(true){
   var color="red";
}

alert(color);//red

在使用for循环时尤其要注意:

for(var i=0;i<10;i++){}

alrt(i);//10

如果初始化变量时没有使用var声明,则该变量会自动添加到全局环境中。在严格模式下,初始化未经声明的变量会导致错误。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值