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

来源:互联网 发布:松岗卓翼科技工资算法 编辑:程序博客网 时间:2024/04/28 19:57

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);//Stringvar 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
原创粉丝点击