本日事情的时刻运用console.log()打印数组调试代码的时刻,发明了一个新鲜的征象
咦 数组睁开之前,显现的是[1,2,3],睁开后却显现的是[1,2,3,4]。好新鲜啊,之前怎样
没有碰到啊(谅解我的年青。。。)这时刻我注意到右上角有个蓝色的小图标,因而我把鼠
标挪动上去,末了出现在我面前的是“Value below was evaluated just now”这一行大字。
为了弄清楚缘由,我查了一波材料,才发明是因为console.log()以后的代码转变了数组!
let array = [1, 2, 3]
console.log(array)
array.push(4)
结论就是:当你睁开数组的时刻,显现出来的数据是终究发作了转变的数据
厥后我在想,假如是数据发作转变之前,我就睁开了数组,那末还会发作这类“新鲜”的征象吗?
因而我执行了下面的代码:
let array = [1, 2, 3]
console.log(array)
setTimeout(() => array.push(4), 5000)
眼疾手快的我在不到一秒的时候点开了数组,等待着“新鲜”的征象发作
等了良久良久,发明一向是这个界面:
此次,我革新等5秒以后再睁开数组看效果吧:
哈哈,“新鲜”的征象又发作了
所以结论就是:当你在控制台睁开打印出来的数组(或许对象)的时刻,假如此时数组(或许对象)的数据已发作了转变,那末将显现转变以后的数据。假如此时数组(或许对象)的数据没有发作转变,那末就一向显现此时的数据
(新人一枚,若有毛病迎接人人指出,谢啦)