1. 程式人生 > >JavaScript中的for in (1)

JavaScript中的for in (1)

for (variable in object)
    statement;

在執行for/in語句過程中,JavaScript直譯器會首先計算object表示式。如果表示式為null或undefined,JavaScript直譯器將會跳過迴圈並執行後續程式碼。如果表示式等於一個原始值,這個原始值將會轉換為之對應的的包裝物件(wrapper object)。否則,expression已經是物件了。JavaScript會依次列舉物件的屬性來執行迴圈。然而在每次迴圈之前,JavaScript都會先計算variable表示式的值,並將屬性名賦值給它。

for/in迴圈可以列舉陣列的索引。

下面的列舉順序取決於具體的實現:

  • 物件繼承了可列舉的屬性。
  • 物件具有整數索引的屬性。
  • 使用delete刪除了物件已有的屬性。
  • 使用Object.defineProperty()或者類似的方法改變了物件屬性。

從上面可以看出陣列也是一種物件只不過,屬性是數值罷了。