es6學習筆記

自執行函數裏面的this指向的是window  let,const    1.聲明的變量只在命令所在的代碼塊內有效    2.let申明的變量不會變量提高(域解析)    3,不容許在同一個做用域下聲明已經聲明的變量    4,const申明後必須賦值數據結構    set :集合,由一組無序並且惟一的項組成的,特色key跟value相同,沒有重複的value          let s = new set([1,2,3])        屬性 .size        方法 .add()  添加一個數據             .delete(value) 刪除指定數據,返回布爾值             .has(value) 判斷是否有這個值 返回布爾值             .clear() 清除全部的數據             .keys()  返回鍵名的遍歷器             .values()  返回值的遍歷器             .entries() 返回鍵值對的遍歷器             .forEach(function(value,key,set/數據自己){})     map :字典型數據結構,是用來存儲不重複的key的hash結構,不一樣set 字典使用的是【鍵,值】的形式來存儲的數據的            鍵能夠是字符串,也能夠是對象   const map = new map([ ['a',1],['b':2]])          map.set(鍵,值)  設置鍵值          map.get(鍵)  獲取鍵對應的值          map.delete(鍵)  刪除          map.has(鍵)  返回布爾值          map.clear()  清除全部的鍵值          map結構中  認爲NaN是同一個鍵iterator跟for-of    遍歷器(Iterator)是一種接口,爲各類不一樣的數據結構提供統一的訪問機制。任何數據結構只要部署Iterator接口,就能夠完成遍歷操做    for–in 用於遍歷對象的屬性。    for-of 用於遍歷數據 — 就像數組中的元素。    for-of 不單單是爲數組設計,還能夠用於類數組的對象,好比 DOM 對象的集合...擴展運算符  var str='abc';  arr=[...str] => [q,b,c]class語法    經過class關鍵字申明一個類    class Miav{        conshis.a=a;            tructor(a,b){                        tthis.b=b;            return this        }        print1(){            console.log(this.a+'-'+this.b)        }        print2(){            console.log(this.a+'-'+this.b)        }     }     Miav下面的constructor是構造函數,方法直接寫在構造函數後面,不須要逗號隔開,原型繼續存在,方法都在原型上,定義在類的方法不能被枚舉    繼承 extends   a extends b   a類繼承b類    繼承格式class A  extends B { }    static 若是在一個方法前, 加上static關鍵字, 就表示該方法不會被@@@@@@實例@@@@@繼承, 而是直接經過類來調用, 這就稱爲「 靜態方法」           父類的靜態方法, 能夠被子類繼承。    super()  調用父類的構造函數 沒調用super以前,子類沒有this///  super當函數只能在構造 函數constructor裏面調用    super.方法()  這裏super其實就是父類的原型對象      class B {           constructor(a,b){               this.a=a;               this.b=b;               return this           }           static add(){               console.log(this)           }       }        class A  extends B {            constructor(a,b,c){                super(a,b)                this.c=c            }            addm(){                console.log(this.a+this.b+this.c)            }        }        var a =new A(1,2,3); a.addm() a.add()symbol 表示獨一無二值        基本數據類型  null undefined number boolean string symobl        定義symbol   let s1 = Symbol('key')  這個key只是描述,不會影響s1的值        symbol不能作任何運輸,判斷爲真字符串的擴展    1.模板字符串 ``  ${變量}    var str ='a'    2 str.repeat(2)  => 'aa'    3 str.includes('a')  查找str中有沒有a  返回布爾值    4 str.endWith('a')  str.startWith('a')  查找str開頭/結尾是否包含a數組擴展    Array.from()  把類數組轉換成真正的數組    Array.of()   方法用於將一組值,轉換爲數組。    arr.find()   查找數組中的符合條件的,返回第一個符合條件的,沒有找到符合條件的返回-1            arr.find(function(a){ return a>2})    arr.findIndex()   查找數組中的符合條件的,返回第一個符合條件的下標;沒找到返回undefined    arr.fill(填充的值,開始位置,結束位置不包括結束位置)對象的擴展    Object.is() 判斷兩個數據是否同樣 返回布爾值        Object.is(NaN,NaN)   true    Object.is(+0,-0)  false    Object.assign(目標對象,源對象,源對象。。。。)  用於對象的合併,將源對象的全部可枚舉的屬性複製到目標對象上rest參數(...變量名)  用於獲取函數多餘的參數,rest實質是一個數組,該變量將多餘的參數放入數組中箭頭函數    格式 :函數名=(參數)=> {函數體}    體內沒有本身的this對象,使用的時候,其內部的this就是定義時候所在的環境的對象,而不是使用時所在的環境對象    沒有arguments對象  用...rest代替generator函數   生成器   普通函數 用function聲明   generator函數用  function* 聲明   在生成器函數內部,有一種相似return的語法:關鍵字yield。   兩者的區別是,普通函數只能夠return一次,   而生成器函數能夠yield屢次(固然也能夠只yield一次)。   在生成器的執行過程當中,遇到yield表達式當即暫停,後續可恢復執行狀態。async函數    函數聲明    async function foo() {}    // 函數表達式    const foo = async function () {};    async表示函數裏有異步操做    await表示緊跟在後面的表達式須要等待結果。    async函數的返回值是 Promise 對象,你能夠用then方法指定下一步的操做。    async函數內部return語句返回的值,會成then爲方法回調函數的參數    async函數內部拋出錯誤,會致使返回的 Promise 對象變爲reject狀態。拋出的錯誤對象會被catch方法回調函數接收到。    await命令後面是一個 Promise 對象。若是不是,會被轉成一個當即resolve的 Promise 對象。        如   async function f() {                                    async function f() {               return await 123;               ====》》                   return await Promise.resolve(123);             }                                                        }    只要一個await語句後面的 Promise 變爲reject,那麼整個async函數都會中斷執行。    即便前一個異步操做失敗,也不要中斷後面的異步操做。這時能夠將第一個await放在try...catch結構裏面    另外一種方法是await後面的 Promise 對象再跟一個catch方法,處理前面可能出現的錯誤。        如 async function f() {            await Promise.reject('出錯了')              .catch(e => console.log(e));            return await Promise.resolve('hello world');          }promise 對象traceur.js 前臺把es6編譯成es5   1.引入tranceur.js   2.引入引導程序 bootstrap.js (是引導程序不是bootstrap庫)   3.插入js  <script type='module'>要寫的es6代碼</script>   map 打散   reduce  彙總
相關文章
相關標籤/搜索