第十週web作業1
阿新 • • 發佈:2018-11-11
for each in:
使用一個變數迭代一個物件的所有屬性值,對於每一個屬性值,有一個指定的語句塊被執行.
語法:
1 for each (variable in object) { 2 statement 3 }
引數:
-
variable:
用來遍歷屬性值的變數,前面的var
關鍵字是可選的.該變數是函式的區域性變數而不是語句塊的區域性變數.
-
object:
該物件的屬性值會被遍歷.
-
statement:
遍歷屬性值時執行的語句. 如果想要執行多條語句, 請用({ ... }
) 將多條語句括住.
一些物件的內建屬性是無法被遍歷到的,包括所有的內建方法,例如String物件的indexOf
方法.不過,大部分的使用者自定義屬性都是可遍歷的.
警告:永遠不要使用for each...in語句遍歷陣列,僅用來遍歷常規物件。
例子:
1 var sum = 0; 2 var obj = {prop1: 5, prop2: 13, prop3: 8}; 3 4 for each (var item in obj) { 5 sum += item; 6 } 7 8 print(sum); // 輸出"26",也就是5+13+8的值
for in:
以任意順序遍歷一個物件的可列舉屬性。對於每個不同的屬性,語句都會被執行。
語法:
1 for (variable in object) {...}
引數:
variable:
在每次迭代時,將不同的屬性名分配給變數。
-
object:
被迭代其列舉屬性的物件。 -
for..in 不應該被用來迭代一個下標順序很重要的
Array
.for...in 並不能夠保證返回的是按一定順序的索引,但是它會返回所有可列舉屬性,包括非整數名稱的和繼承的。 - 例子:
1 var obj = {a:1, b:2, c:3};2 3 for (var prop in obj) { 4 console.log("obj." + prop + " = " + obj[prop]); 5 } 6 7 // Output: 8 // "obj.a = 1" 9 // "obj.b = 2" 10 // "obj.c = 3"
for of:
for...of 語句建立一個迴圈來迭代可迭代的物件。在 ES6 中引入的 for...of
迴圈,以替代 for...in
和 forEach()
,並支援新的迭代協議。for...of
允許你遍歷 Arrays(陣列), Strings(字串), Maps(對映), Sets(集合)等可迭代的資料結構等。
語法:
1 for (variable of iterable) { 2 statement 3 }
引數:
variable:每個迭代的屬性值被分配給該變數。
iterable:一個具有可列舉屬性並且可以迭代的物件。
例子:
1 // array-example.js 2 const iterable = ['mini', 'mani', 'mo']; 3 4 for (const value of iterable) { 5 console.log(value); 6 } 7 8 // Output: 9 // mini 10 // mani 11 // mo