1. 程式人生 > 其它 >JavaScript中迴圈使用push,console.log列印陣列遇到的一些問題

JavaScript中迴圈使用push,console.log列印陣列遇到的一些問題

在用迴圈中用push新增陣列元素時發現每次打印出來的都是最後的陣列

var i =[];
			for(let j=0;j<5;j++)
			{
				i.push(j)
				console.log(i)
			}

本來以為會按照 [0]/[0,1]/[0,1,2]這種方式打印出來,結果打印出來了
在這裡插入圖片描述
五個完全一樣的陣列,看了一些別人的部落格,是因為陣列的地址是同一個,所以打印出來的是完全相同的。因為alter是會阻斷程式碼繼續往下執行的,所以後面我用alter替換了console.log,發現確實按我預期的執行順序顯示了出來,所以我認為主要問題是console.log的執行問題,

console.log()執行順序


我一直認為哪位console.log是同步執行的,在查閱了一些部落格後,發現consloe.log不僅僅只會按同步執行,在列印物件是引用型別時,它其實是會非同步執行的,這也就造成了我開始遇到的那種問題。