for in的使用
array.prototype.
sayhello
=function()
; array.prototype.str =
"我是陣列原型的字串"
;//定義乙個陣列
var arr =[1
,2,3
,4];
console.
log(arr)
;//當前列印的沒有原型上的屬性和方法 [1, 2, 3, 4]
//使用for in迴圈
for(
let index in arr)
//輸出結果為 0,1,2,3,4,name,str,sayhello
object.prototype.
sayhello
=function()
; object.prototype.str =
"world"
;var myobject =
; console.
log(myobject)
;//輸出 ;
//使用for in迴圈物件
for(
let index in myobject)
//輸出結果 首先輸出的是物件的屬性名,再是物件原型中的屬性和方法, name,age,str,sayhello
//如果不想讓其輸出原型中的屬性和方法,可以使用hasownproperty方法進行過濾
for(
let index in myobject)
}//輸出結果為name,age
//你也可以用object.keys()方法獲取所有的自身可列舉屬性組成的陣列。
console.
log(
"object.keys(myobject)"
, object.
keys
(myobject));
//["name", "age"]
結論:
1.for in 應用於陣列迴圈時:返回的是陣列的下標和陣列的屬性和原型上的方法和屬性
2.for in 應用於物件時:迴圈返回的是物件的屬性名和原型中的方法和屬性。
for of的使用
//for of 應用在陣列中
array.prototype.
sayhello
=function()
; array.prototype.str =
"我是陣列原型的字串"
;//定義乙個陣列
var arr2 =[10
,20,30
,40];
console.
log(arr2)
;//當前列印的沒有原型上的屬性和方法 [10, 20, 30, 40]
//使用for of迴圈
for(
let index of arr2)
//輸出結果為 10,20,30,40 遍歷的是陣列元素值,沒有原型上的屬性和方法
object.prototype.
sayhello2
=function()
;var myobject2 =
;for
(let key of myobject2)
//報錯uncaught typeerror
結論:
1.for of 應用於陣列迴圈時: 遍歷的是陣列元素值,沒有原型上的屬性和方法
for in遍歷的是陣列的索引(即鍵名),而for of遍歷的是陣列元素值。 所以for in更適合遍歷物件,不要使用for in遍歷陣列。
js中for of 和for in區別?
先說結論 1.推薦在迴圈物件屬性的時候,使用for in 在遍歷陣列的時候的時候使用for of。2.for in迴圈出的是key,for of迴圈出的是value 3.注意,for of是es6新引入的特性。修復了es5引入的for in的不足 4.for of不能迴圈普通的物件,需要通過和obj...
js中的for in 和 for of 的區別
for.in和for.of的區別 for.in是es5的標準,該方法遍歷的是物件的屬性名稱 key 鍵名 乙個array物件也是乙個物件,陣列中的每個元素的索引被視為屬性名稱,所以在使用for.in遍歷array時,拿到的是每個元素索引 一般用於遍歷物件自身的和繼承的可列舉屬性。以及物件從建構函式原...
for in 和 for of 的對比
fon in和for of最大的區別就是 乙個是對鍵名key的遍歷,乙個是對鍵值value的遍歷 使用for in也能遍歷陣列,但會存在一些問題 index索引為字串型數字,不能直接進行幾何運算 和遍歷順序物件的行為一樣,使用for in會遍歷陣列所有可列舉的屬性,所以原型物件上的方法和屬性也會被遍...