1. 程式人生 > >for for in與for of區別

for for in與for of區別

我們一般用for迴圈來遍歷陣列,因它可以按順序的返回每一個索引的值或者索引 ,for迴圈並不能遍歷物件。

for in 用來遍歷物件及其原型鏈上的可列舉屬性,而且它的遍歷結果不一定是按照順序來的。

就比如說 如果陣列長度中存在空值或者undefined ,那麼for in 會直接忽略它,迭代下一個屬性。並且for in 還會迭代 原型上繼承的以及新增的可列舉屬性。

for..of是es6新新增的語法,如果說for in用來遍歷鍵名,那麼for of  就是用來遍歷鍵值的。for in 和for的區別是 :for in 遍歷是無順序的且遍歷所有可列舉屬性,而for of 是按順序的遍歷可迭代物件定義的要迭代的資料。for in 較適合用來遍歷物件,因為物件的屬性就是無順序的。

補充 :in操作符  in操作符用來判斷一個屬性是否是某個物件本身的屬性或者是從原型繼續下來的,如果是返回true,否則的話,返回false.

in 對刪除後的屬性返回的是false,而如果一個屬性的值為undefined或者為null,則in依然返回true。