美文网首页
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