在JS中咱們最多見的循環語句是for
循環語句,一個簡單的for
循環語句以下:數組
for(var i = 0, n = 100; i < n; i++){ // to do somethings ... }
不過在JS中還有一種很是實用的循環語句叫for..in
,一般用來遍歷數組或對象的屬性.prototype
由於發現小夥伴在使用for...in
的時候常常會踩坑,這裏再次強調下for..in
語句的釋義:code
當使用for...in
遍歷數組時,遍歷的的每個子項是數組的索引值對象
var arr = ["張三","李四","王五"]; var index; for(index in arr){ console.log(index); } // 0 // 1 // 2
當使用for...in
遍歷對象時,每個子項是對象的屬性名繼承
var obj = { "a":"張三","b":"李四","c":"王五"}; var pro; // pro =property = 屬性 for(pro in obj){ // 注意:先判斷該屬性是不是對象自己實例化時建立的屬性? // 若是是對象自己實例化時建立的屬性,則輸出; // 若是不是,也就存在經過原型(prototype)繼承下來的屬性,則跳過. var b = obj.hasOwnProperty(pro); if(b){ console.log(pro); } } // a // b // c