簡體   English   中英

為什么即使在console語句之后更新了數組,console.log為什么也打印數組?

[英]Why does console.log prints array even when the array is updated after the console statements?

我運行了以下JS代碼。 控制台將打印一個空數組。

 function xyz(){ var a=[]; var b=[]; console.log(a); for(i=0;i<10;i++){ b.push(i); } a=b; } 
但是當我嘗試運行這個

 function xyz(){ var a=[]; console.log(a); for(i=0;i<10;i++){ a.push(i); } } 

控制台將打印從0到9的數組。另外,我在這里看到的是,即使console語句位於for循環的上方,我們在該循環中推送數組中的值,但控制台仍在打印,但在第一種情況下不是(我認為是因為該控制台正在打印的引用為空)。代碼已在chrome瀏覽器控制台上進行了測試。

function xyz(){
   var a=[];
   console.log(a);
   for(var i=0;i<10;i++){
     a.push(i);
   }
}
xyz();

當我們在chrome控制台中看到它時,它有一個空數組,但是當我們展開它時,它也在顯示具有length屬性的數組值。

您需要在那里密切注意,那里有一個i (信息)說,它剛剛被評估。

在此處輸入圖片說明

這意味着chrome控制台會獲得對該數組的實時引用,並在console.log()上顯示length屬性等於0的空白數組,但還會對該數組添加實時引用,因此在擴展時我們會看到數組

在代碼中更新數組后,需要使用console.log()才能正常工作。

  function xyz(){ var a=[]; for(i=0;i<10;i++){ a.push(i); //array is updating here } console.log(a); } xyz(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM