console.log打印后的数据不符合预期

74 阅读1分钟

console.log打印后的数据不符合预期

不符合预期:

image.png

     let obj = {
        value:{
            value:999
        }
    }
    console.log(obj.value);//{value: 999},但是点击展开有,value却是0
    obj.value.value = 0
    console.log(obj.value);//{value: 0}
​
​
    //猜测,因为obj是引用类型,并且第一个value也是引用类型
    //当第一次打印时,还未对value进行操作,打印出来的时符合预期的
    //但时点击展开时,是按照引用地址去找存储位置,引用地址没有发生改变,此时是已经对value做过操作的
    //所以找到的是改变后的value:0;不是999是正常的;

验证:

Snipaste_2022-11-11_10-53-06.png

    //若符合猜测,则第一个console.log(obj.value);打印的value值是999,第二次打印的是0,并且点击展开后,value的值不会改变
    //因为这里我们把引用地址换了
​
    let obj = {
        value:{
            value:999
        }
    }
    console.log(obj.value);
    obj.value = {
        value:0
    }
    console.log(obj.value);
    //验证成功