let
①用來聲明變量。它的用法類似于var,但是所聲明的變量,只在let命令所在的代碼塊內有效。
②不存在變量提升(變量一定要在聲明后使用,否則報錯)
③如果區塊中存在let和const命令,這個區塊對這些命令聲明的變量,從一開始就形成了封閉作用域。凡是在聲明之前就使用這些變量,就會報錯
④不允許重復聲明const
(并不是變量的值不得改動,而是變量指向的那個內存地址不得改動)
①聲明一個只讀的常量。一旦聲明,常量的值就不能改變
②只在聲明所在的塊級作用域內有效。解構
Symbol 一無二的值
Set
ES6提供了新的數據結構Set。它類似于數組,但是成員的值都是唯一的,沒有重復的值。
Set函數可以接受一個數組(或類似數組的對象)作為參數,用來初始化。
四個操作方法:
add(value):添加某個值,返回Set結構本身。
delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功。
has(value):返回一個布爾值,表示該值是否為Set的成員。
clear():清除所有成員,沒有返回值
遍歷的方法:
keys():返回一個鍵名的遍歷器
values():返回一個鍵值的遍歷器
entries():返回一個鍵值對的遍歷器
forEach():使用回調函數遍歷每個成員
set內部的元素可以遍歷for...of...WeakSet
WeakSet和Set的區別:
WeakSet的成員只能是對象,而不能是其他類型的值
WeakSet中的對象都是弱引用,即垃圾回收機制不考慮WeakSet對該對象的引用,也就是說,如果其他對象都不再引用該對象,那么垃圾回收機制會自動回收該對象所占用的內存,不考慮該對象還存在于WeakSet之中。這個特點意味著,無法引用WeakSet的成員,因此WeakSet是不可遍歷的。map
遍歷方法:keys()、values()、entries()、forEach()WeakMap
Iterator遍歷器.它是一種接口,為各種不同的數據結構提供統一的訪問機制
Generator
普通函數只可以return一次,而生成器函數可以yield多次(當然也可以只yield一次)。在生成器的執行過程中,遇到yield表達式立即暫停,后續可恢復執行狀態。Promise
async
class
proxy
Decorator
model
二進制數組
Array.find()和findIndex()
find() 函數用來依次查找目標元素,找到就返回該元素,找不到返回undefined。
findIndex() 返回第一個符合條件的數組成員的位置,如果所有成員都不符合條件,則返回-1。Object.is(value1, value2);
多數情況下Object.is等價于“===”
推薦閱讀:
http://www.cnblogs.com/-simon/p/5940518.html
淺談JavaScript、ES5、ES6
http://es6.ruanyifeng.com/#docs/intro
迷你書所屬 深入淺出ES6
JavaScript
http://www.hubwiz.com/course/5359f6f6ec7452081a7873d8/