console打印 说明如下
- console.log打印对象的执行机制,当你在浏览器控制台点击对象,展开对象时,此时浏览器才会去对象所在的堆内存中获取数据,再经过浏览器编译,展示在控制台。
- 控制台对象一旦打开后,就不再修改,其值就会存储在浏览器中,即使后面代码再次更新对象,也不会改变了。
测试代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script>
var arr = new Array();
var obj = {
num:90,
list:[
{
name:'cj',
age:12
}
]
}
console.log(obj);
obj.list.push({
name:'lq',
age:15
})
obj.num =100;
console.log(obj);
</script>
</html>
打印结果如下(结果相同)
分析如下:根据js的单线程特性,按理说对obj对象修改之前和之后二则打印的结果会不同,但实际结果却相同。说明在浏览器打印对象时,并未去直接调用对象所对应的堆内存中的值,而是首先打印了个此刻浏览器自己解析的一个代表这个对象的一个字符串。当我们点击这个值,去展开这个对象时,浏览器才