javascript - console.log()出来的数据开始没问题,点击查看详情会全部都变成一个数据,请问这个是代码的问题还是控制台的问题?
黄舟
黄舟 2017-04-11 11:43:47
[JavaScript讨论组]

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
伊谢尔伦

console.log控制台就这样。对于引用数据类型输出的是对引用数据类型的引用。
你点开小三角的时候,显示的是最新的值(因为是引用嘛,你做了操作修改了就变了)
可以把鼠标移动到蓝色i上看一眼,有提示。

PHP中文网

没看到代码的情况下,建议你用console.table()

迷茫

之前遇到过类似的问题,不过当时是数组,控制台显示数组大小是4,点击打开之后大小却是2。经过调试后发现是引用出了问题,后面的变量是之前定义的变量的引用,然后使用过程中改变了这个变量,导致输出有问题。
举个例子,比如:

var a = [1, 2, 3, 4];
console.log(a); // 此时输出的数组长度为4,内容是[1, 2, 3, 4]
var b = a; // 引用a
b.pop(); // 改变a的内容
console.log(b); // 此时输出的数组长度为3,内容是[1, 2, 3]。 但是上面的console.log(a)在控制台仍然显示长度4,而点开后发现实际只有三个元素

同理,我猜你应该是同样的问题:即输出的变量是对前面某个变量的引用。你可以试试在改变对象前不要直接赋值,而是进行深度克隆,如var newObj = _.cloneDeep(obj),然后再改变newObj并输出,看看问题是不是出在这。

高洛峰

console.dir出来的对象其实不是真实的打印了出来。而是一个快照。正确的调试应该用debugger....

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号