4 个回答

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

没看到代码的情况下,建议你用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....

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题