控制台输出对象,输出引用类型的小坑。

本文探讨了在JavaScript中遇到的一个控制台输出问题,即赋值语句在输出后执行但控制台显示已更新的值。作者通过断点调试和测试方法揭示了控制台展示引用类型时的特性,指出并非赋值语句执行顺序错误。解决问题的关键在于理解控制台如何显示对象的属性。建议在遇到问题时深入探究原理,避免误解。
摘要由CSDN通过智能技术生成

项目场景:

提示:这里简述项目相关背景:

  • List item

场景:在异步请求前 请求后重置请求数据。控制台输出会误以为赋值语句在输出语句前执行
控制台输出引用类型的问题, 下面上代码


问题描述

提示:这里描述项目中遇到的问题:

赋值语句在后,却在控制台中输出{a=666} 的问题。

let obj = {
            a: 1
        }
        console.log(obj)   //输出 {a =666}

        obj.a = 666

输出结果如下图
在这里插入图片描述


原因分析:

提示:这里填写问题的分析:
原因:当点开浏览器控制台的小三角,控制台会获取其属性和方法展现

测试方法,

经过断点,发现并非 赋值语句在输出语句前执行!!
可以利用断点或者setTimeout延迟赋值进行测试

容易出现的误点

本作者小菜一个刚开始误以为是控制台输出需要时间,赋值语句已经执行完了
在这里希望大家遇到问题,不要放弃,探索原理,才是学习最好的方式。


解决方案:

提示:这里填写该问题的具体解决方案:

1.通过打断点进行调试。
2.数组输出length长度来确定是否有值
3.通过转为JSON字符串进行输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值