美文网首页
JS - console.log 输出对象时的问题

JS - console.log 输出对象时的问题

作者: 恒星的背影 | 来源:发表于2018-09-30 20:26 被阅读0次

今天遇到的一个问题,代码如下:

<body>
  <div id="app">
    <div class="test" :class="name">{{name}}</div>
  </div>
  <script>
    var app = new Vue({
      el: '#app',
      mounted() {
        this.name = 'bbb'
        const dom = document.querySelector('.test')
        console.log(dom, dom.className)
      },
      data: {
        name: 'aaa'
      }
    })
  </script>
</body>

获取 Dom 元素时,视图还没有更新,所以输出的结果应该是 'aaa'

实际输出结果:

<div class="test bbb">bbb</div>  "test aaa"

前面为什么会输出 bbb ?
这个结果是无论如何都解释不清的,经过群里请教他人,得出结论如下:
是浏览器控制台的问题,控制台打印对象是不准确的
比如:

let obj = {a: 1}
console.log(obj)
obj.a = 2

输出结果:



嗯,薛定谔的对象,两种状态叠加

还有一个技巧,可以用 JSON.stringify 打印,经过本人试验,可以打印出预期的结果

相关文章

网友评论

      本文标题:JS - console.log 输出对象时的问题

      本文链接:https://www.haomeiwen.com/subject/gufgoftx.html