引用类型和基本数据类型

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            
            /*
             * 基本数据类型
             *  String Number Boolean Null Undefined
             * 
             * 引用数据类型
             *  Object
             * 
             * JS中的变量都是保存到栈内存中的,
             *      基本数据类型的值直接在栈内存中存储,
             *      值与值之间是独立存在,修改一个变量不会影响其他的变量
             * 
             *      对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,
             *      而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,
             *      当一个通过一个变量修改属性时,另一个也会受到影响
             */
            
            var a = 123;
            var b = a;
            a++;
            
            /*console.log("a = "+a);
            console.log("b = "+b);*/
            
            var obj = new Object();
            obj.name = "孙悟空";
            
            var obj2 = obj;
            
            //修改obj的name属性
            obj.name = "猪八戒";
            
            
            
            /*console.log(obj.name);
            console.log(obj2.name);*/
            
            //设置obj2为null
            obj2 = null;
            
            /*console.log(obj);
            console.log(obj2);*/
            
            var c = 10;
            var d = 10;
            //console.log(c == d);
            
            var obj3 = new Object();
            var obj4 = new Object();
            obj3.name = "沙和尚";
            obj4.name = "沙和尚";
            
            /*console.log(obj3);
            console.log(obj4);*/
            
            /*
             * 当比较两个基本数据类型的值时,就是比较值。
             * 而比较两个引用数据类型时,它是比较的对象的内存地址,
             *      如果两个对象是一摸一样的,但是地址不同,它也会返回false
             */
            console.log(obj3 == obj4);
            
            
        </script>
    </head>
    <body>
    </body>
</html>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容