评论

为什么 console.log 打印对象显示的和手动点击展开不一样

为什么 console.log 打印对象显示的和手动点击展开不一样

微信开发者工具的调试器使用的是 chrome devtools-frontend https://github.com/ChromeDevTools/devtools-frontend

  1. 在使用 console.log 打印一个 Object 时,直接显示的是对象在调用 console.log 时的快照。
  2. 如果之后再将打印的 Object 展开,会再次读取当前对象的值进行显示
var a = {a: 1}; console.log(a); a.a = 2;

所以建议 console.log(JSON.stringify(a)); 进行打印

var a = {a: 1}; console.log(JSON.stringify(a)); a.a = 2;
最后一次编辑于  2022-05-17  
点赞 4
收藏
评论

3 个评论

  • Frank
    Frank
    2022-05-17

    console.log时,展示快照;点击展开,才去读取该对象的值,学到了

    2022-05-17
    赞同 1
    回复
  • qiang
    qiang
    2022-05-19

    对象是引用类型,很正常啊

    2022-05-19
    赞同
    回复
  • 王『小』贱*#
    王『小』贱*#
    2022-05-17

    这么输出就是当时的值了么?

    2022-05-17
    赞同
    回复 1
    • 工号 9527
      工号 9527
      2022-05-17
      你自己试下咯
      2022-05-17
      回复
登录 后发表内容