今天閒的沒事回顧了ES6的一些知識,下面寫的不是特別詳細,只是相似於一個大綱,今天我居然敢睡到八點起牀了,md,我膨脹了,趕忙寫篇博客壓壓驚es6
下面來看看ES6給咱們提供了哪些新東西編程
let:聲明的變量僅在塊級做用域內有效
const:常量,值一旦定義不可更改;聲明時要賦初值
對象賦值:對象根據屬性名一一對應,無序對應 首先有這麼一個對象const props = { className: 'tiger-button', loading: false, clicked: true, disabled: 'disabled' } // es5 var loading = props.loading; var clicked = props.clicked; // es6 const { loading, clicked } = props; 數組賦值:數組以序列號一一對應,有序對應;容許指定默認值;內部使用嚴格相等運算符(===) // es6 const arr = [1, 2, 3]; const [a, b, c] = arr; // es5 var arr = [1, 2, 3]; var a = arr[0]; var b = arr[1]; var c = arr[2];
for(let codePointAt of 'hicai'){ console.log(codePointAt); } // h i c a i 遍歷對象用for...in
// es5 寫法 var fn = function(a, b) { return a + b; } // es6 箭頭函數寫法,當函數直接被return時,能夠省略函數體的括號{} const fn = (a, b) => { a + b }; // {}能夠省略
注意:數組
// es5寫法 var a = 20;
var b = 30;
var string = a + "+" + b + "=" + (a + b);
// es6寫法 const a = 20;const b = 30;const string = `${a}+${b}=${a+b}`;
ES6中用...來表示展開運算符,能夠將數組方法或者對象方法進行展開; 數組: const arr1 = [1, 2, 3]; const arr2 = [...arr1, 10, 20, 30]; // 這樣,arr2 就變成了[1, 2, 3, 10, 20, 30]; 對象: const obj1 = {a:1,b:2,c:3} const obj2 = { ...obj1, d: 4, e: 5, f: 6 } // 結果相似於 const obj2 = Object.assign({}, obj1, {d: 4})
在js中,每一個對象都有原型對象,全部js對象都從原型上繼承方法和屬性;
ES5中,屬性放在構造函數constructor裏,方法放在原型prototype上;
ES6中引入類class來代替構造函數constructor;還提供了extends劃分super關鍵字;
特色:a)對象的狀態不受外界影響,promise對象表明一個異步操做,有三種狀態:pending(進行中)、resolve(成功)、rejected(失敗)
一旦狀態改變,就不會改變
基本用法:
Promise構造函數的兩個參數是resolve和reject;
Promise實例生成後,能夠用then方法分別制定resolve和rejected狀態的回調函數;
Promise的then方法是定義在原型對象Promise.prototype上的,then方法返回的是一個新的Promise實例,不是原來那個Promise實例,所以能夠用鏈式寫法;
方法1:Promise.all()方法用於將多個promise實例包裝成一個新的promise實例;
方法2:Promise.race()方法只要有一個peomise執行完畢就執行
export用於對外輸出本模塊(一個文件能夠理解爲一個模塊)變量的接口
import用於在一個模塊中加載另外一個含有export接口的模塊。
Array.from()方法能夠將僞數組轉爲數組
Array.of()將一組數字轉化爲數組
Set a)Set實例成員值惟一存儲key值,map實例存儲鍵值對(key-value) b)Set實例的方法分爲兩大類:操做方法(用於操做數據)和遍歷方法(用於遍歷成員)。 操做方法: add(value):添加某個值,返回Set結構自己 delete(value):刪除某個值,返回布爾值 has(value):返回布爾值,表示該值是否爲Set的成員 clear():清除全部成員,沒有返回值 遍歷方法: keys():返回鍵名 values():返回鍵值 entries():返回鍵值對 forEach():使用回調遍歷每一個成員 Map a)Map的鍵其實是跟內存地址綁定的,只要內存地址不同,就視爲兩個鍵; b)Map實例的屬性和操做方法: size屬性:返回Map結構的成員總數; set(key, value):設置鍵名key對應的鍵值爲value,而後返回整個Map結構,若key已有值,則更新鍵值,不然生成該鍵。 get(key):讀取key對應的鍵值 has(key):返回布爾值,表示某個鍵是否存在當前map對象中。 delete(key):刪除某個鍵,返回true,刪除失敗返回false clear():其清除全部成員,沒有返回值 c)map的遍歷方法: keys():返回鍵名 values:返回鍵值 entries:返回全部成員 forEach():遍歷map的全部成員,map的遍歷順序就是插入順序
Symbol值經過Symbol函數生成; let s = Symbol(); typeof s; // 「symbol」
注意:
Symbol函數能夠接受一個字符串爲參數,表示對當前Symbol實例的描述,所以相同參數的Symbol函數的返回值是不相等的;