关于js中的打印console.log()
最近在改前端的时候发现打印的内容总是不符合预期,于是debugger看了一下,似乎是我对js有点误解。
首先新建一个文件,写个简单的页面,改成html,双击打开,f12控制台,发现打印的结果前后一致。
打个断点看一下
<html> <body> <p>hello</p> </body> <script> window.onload = function(){ debugger var a = {name:"张三",age:20}; console.log(a); a.age = 25; console.log(a); }; </script> </html>
这个时候a的age还是20。
如果打印的是某个值呢?
如果把json对象转成字符串再打印呢?
总结:在java中打印一个对象,如果对象有tostring方法就会打印tostring方法的返回值,如果没有tostring则直接打印对象的地址,在js中打印json对象会打印实时的json对象,感觉更像是创建了一个快捷方式,在你查看的时候直接访问对象本身而不是他的快照。所以如果想跟踪json数据的变化情况,可以把他转成字符串或者只打印需要的值。