迭代過程
獲取迭代器(指向當前資料結構的起始位置)。
通過物件的某些方法返回迭代器物件。如:
多次呼叫iterator.next()
向下迭代指向下乙個位置。
當done
為true
時遍歷結束。
如要重新迭代,需要重新獲取迭代器
(從第1步重新開始)。
string
array
set
map
dom元素(開發中。。。)
obj
不同搭配,效能可能會有所差異。
以下依次為string, array, set, map
類物件的迭代器訪問和for…of迴圈訪問。
遍歷方式同上,唯一不同的是map.entries()
返回的迭代器的next()
方法返回的物件:
中,
value
為長度為2的陣列。
var map = new map().set(1, "one").set(2, "two");
var iterator = map.entries();
undefined
for (let i = 0; i < map.size; i++)
// 兩種for..of迴圈
for (let entry of map)
for (let [key, value] of map)
js中map物件的建立,遍歷(7種)和使用(增刪改查)
object
不可迭代
可迭代的資料結構有:string, array, set, map
不可迭代的有:object
,以及es6新增的weakset, weakmap
(未定義obj[symbol.iterator]()
)。
arraylike
類陣列物件
因為object
無法被迭代。
但是有一種特殊物件,其屬性名稱中只有乙個length
(屬性值為數值型別),其他屬性名稱都是數值,類似於陣列的索引(0, 1, 2, 3
等)。
這種物件可以用array.from(obj)
轉換為陣列物件,然後就可以對陣列進行迭代。
var arraylike = ; // object
var arr = array.from(arraylike); // array
console.log(arr);
// (4) ["zero", "one", undefined, "four"]
之後就可以對新得到的陣列arr進行遍歷 es6新特性 ES6新特性(一)
var 1 var宣告的是函式作用域 區域性 但在if for等定義的變數是全域性的 2 var 具有變數提公升,預解析 3 在同乙個作用域下,var可以宣告多次 4 var 宣告的變數會掛載到window上 let1 let不存在變數提公升,在變數使用之前,必須要先宣告 2 let在同一作用域下,...
ES6新特性須知
1.1es5之前函式想要賦預設值var funes5 function a,b,c 1.2es6開始函式想要賦預設值var funes6 function a 50,b 60,c 70 2.1es5之前字串拼接或者拼接屬性值只能如下var a lbj var b 50 var c name a ye...
es6新特性分享
1 字串查詢 es5使用是indexof 返回字元第一次出現的位置int值 es6新增了3個方法 includes startswith endwith 返回bool值 includes 是否包含字元 startswith 首字母是否包含字元 endwith 末尾是否包含字元 2 數值擴充套件 nu...