项目场景:
提示:这里简述项目相关背景:
- List item
场景:在异步请求前 请求后重置请求数据。控制台输出会误以为赋值语句在输出语句前执行
控制台输出引用类型的问题, 下面上代码
问题描述
提示:这里描述项目中遇到的问题:
赋值语句在后,却在控制台中输出{a=666} 的问题。
let obj = {
a: 1
}
console.log(obj) //输出 {a =666}
obj.a = 666
输出结果如下图
原因分析:
提示:这里填写问题的分析:
原因:当点开浏览器控制台的小三角,控制台会获取其属性和方法展现
测试方法,
经过断点,发现并非 赋值语句在输出语句前执行!!
可以利用断点或者setTimeout
延迟赋值进行测试
容易出现的误点
本作者小菜一个刚开始误以为是控制台输出需要时间,赋值语句已经执行完了
在这里希望大家遇到问题,不要放弃,探索原理,才是学习最好的方式。
解决方案:
提示:这里填写该问题的具体解决方案:
1.通过打断点进行调试。
2.数组输出length长度来确定是否有值
3.通过转为JSON字符串进行输出