08.可变类型

不可变类型-原始值

  1. 原始值都是不可变的类型,值一旦创建就无法修改!
  2. 每次创建新的值都会先在内存中查找是否存在相同的值,如果存在直接赋予内存地址,不存在才会创建新的值。
  3. 当我们为一个变量赋值时绝不会影响其他变量。

可变类型-对象

  1. 对象创建完成后,可以任意增加删除修改对象中的属性                                                                                                              

2. 注意:当对两个对象进行相等或全等比较时,比较的是对象的内存地址

        let obj1 = Object()
        let obj2 = Object()
        console.log(obj1 == obj2) //false

 

3. 如果有两个变量指向同一个对象,通过一个变量修改对象,另一个变量也会产生影响

 let obj1 = {
            name: "孙悟空",
            age: 18,
            gender: "male"
        }
        let obj2 = obj1
        console.log(obj1)
        console.log(obj2)
        console.log(obj1 == obj2) //true

 

 //通过obj2修改obj1中定义的属性
        obj2.name = "猪八戒"

4.通过给obj2重新赋值可以解除obj1和obj2之间的联系(让obj2的指针指向别处)

<script>
        let obj1 = {
            name: "孙悟空",
        }

        let obj2 = obj1
        obj2 = {} 
        obj2.name = "猪八戒"

        console.log(obj1)
        console.log(obj2)
    </script>

5.在使用变量存储对象时,为了不让变量指向的对象换来换去,通常用const禁止变量重新赋值。当然对于对象的增删改毫无影响。

变量:obj1,obj2这种就是变量;

对象:{},object()

<script>
        // 这里变量obj1只能被赋值一次
        const obj1 = {
            name: "孙悟空",
        }
        // 这里变量obj2只能被赋值一次
        const obj2 = obj1
        obj2.name = "猪八戒"

        console.log(obj1)
        console.log(obj2)
    </script>

 

posted @ 2022-10-13 20:13  莫扎特03  阅读(17)  评论(0编辑  收藏  举报