JavaScript进阶之:六、值类型和引用类型的赋值

  • 值类型的赋值:

    • 把等号右边的变量存储的内容(具体的数据)复制一份给左边的变量
    • 注意点:修改了其中的一个变量,对另外一个变量没有影响,他们是相互独立的
  • 引用类型的赋值:

    • 把等号右边的对象存储的内容(指向具体数据的地址)复制一份给左边的对象
    • 注意点:修改了其中的某一个对象,对另外一个对象有影响,他们共享内存中的同一块数据
  • 示例代码:

<script>
    var str1 = "string1";
    var str2 = str1;             //值类型的赋值
    console.log(str1 == str2);   //true
    str1 = "修改";
    console.log(str1 == str2);   //false
    console.log(str1);           //修改
    console.log(str2);           //string1

    var obj1 = {
        name:"张三"
    }

    var obj2 = obj1;                //引用类型的赋值
    console.log(obj1 == obj2);      //true
    obj1.name = "李四";
    console.log(obj1.name);         //李四
    console.log(obj2.name);         //李四

    //赋值操作之后,如果重新使用字面量的方式来设置对象,那么会切断和赋值对象之间的联系
    obj1 = {
        age:20,
        name:"老王"
    }

    console.log(obj1.name);         //老王
    console.log(obj2.name);         //李四
</script>
  • 使用画图方式解说示例代码:
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容