变量,作用域和内存的问题

1.基本类型和引用类型的值

基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象

 

在操作对象时,实际上是在操作对象的引用而不是实际的对象;为此,引用类型的值是按引用访问的;

2.动态的属性

定义基本类型值和引用类型值得方式是类似的:创建一个变量并为该变量赋值,但是当这个值保存到变量中以后,对不同类型值可以执行的操作则大相径庭。对于引用类型的值,我们可以为其添加属性和方法,也可以改变和删除其属性和方法。

例子:

var person=new object();

person.name="asn";

alert(person.name);

以上代码创建了一个对象并将其保存在了变量person中,然后,我们为该对象添加了一个名为name的属性,并将字符串值“asn"赋给了这个属性;紧挨着,又通过alert()函数访问了这个新属性。如果对象不被销毁或者这个属性不被删除,则这个属性将一直存在;

不能给基本类型的值添加属性,尽管这样做不会导致任何错误

3.复制变量值

如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到新变量分配的位置上。

 

4.传递参数

ECMAScript中所有函数的参数都是按值传递的。

 

5.检测类型

要检测一个变量是不是基本数据类型?typeof操作符是最佳工具 说的具体一点就是,typeof操作符是确定一个变量是字符串,数值,布尔值,还是Undefined的最佳工具,如果变量的值是一个对象或null,则typeof操作符会返回”object“

检测引用类型的值:instanceof操作符

 

posted @ 2016-03-31 16:07  素小珍blog  阅读(128)  评论(0编辑  收藏  举报