<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>基本类型/引用类型--值类型</title>
    <script text="text/javascript">
        var a=1;
        var b=a;
        a=2;
        alert(b);//1        
    </script>
    </head>
    <body>

    </body>
</html>
 
值类型的变量直接保存变量值;引用变量却持有的引用(可比较c/c++的指针,一把"钥匙"),通过引用可以迅速找到存储内容的内存区域。
 
值类型一般是一些固定的字节大小的;引用类型往往存储数组,对象,函数这些实现很难知道占据内存大小的量。
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>基本类型/引用类型--引用类型</title>
    <script text="text/javascript">
    //引用涉及的内容占据不固定的大小--像数组,对象,函数
        var a=[1,2,3];
        var b=a;//拷贝的引用值--想象成一个指针
        a[0]=100;
        alert(b);//100,2,3    
    </script>
    </head>
    <body>

    </body>
</html>
 
 
介于2中类型之间的特殊的字符串类型:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>基本类型/引用类型--字符串</title>
    <script text="text/javascript">
    //字符串比较特殊,长度不固定应该引用,可是某些行为又像基本类型的
        var a="hello";
        var b=a;//拷贝的引用值--想象成一个指针
        a="你好";//实际上是又建立另外一个字符串"你好"并指向它
        alert(b);//hello
        
        //字符串算是一种不变对象
    </script>
    </head>
    <body>

    </body>
</html>
 
每次建立一个新字符串-----不变对象。
 
补充:像"hello"这种字符串,当没有变量引用它时(也就是引用计数为0),该到了垃圾回收的时候啦*-*