各個瀏覽器對新特性的支持:
https://kangax.github.io/compat-table/es6/
node各版本對新特性的支持:
http://node.green/
Symbol.iterator
返回一個遍歷器對象,其本身是一個表達式。
arr[Symbol.iterator]();
字符串,數組,map,set都實現了Iterator接口
Map與Object的不同:
Map結構提供了“值—值”的對應,是一種更完善的Hash結構實現。如果你需要“鍵值對”的數據結構,Map比Object更合適。它類似於對象,也是鍵值對的集合,但是“鍵”的范圍不限於字符串,各種類型的值(包括對象)都可以當作鍵。
注意,只有對同一個對象的引用,Map結構才將其視為同一個鍵。這一點要非常小心。


var map = new Map();
map.set(['a'], 555);
map.get(['a']) // undefined
上面代碼的set和get方法,表面是針對同一個鍵,但實際上這是兩個值,內存地址是不一樣的,因此get方法無法讀取該鍵,返回undefined。
如果Map的鍵是一個簡單類型的值(數字、字符串、布爾值),則只要兩個值嚴格相等,Map將其視為一個鍵,包括0和-0。另外,雖然NaN不嚴格相等於自身,但Map將其視為同一個鍵。