ES6知識拾遺,再讀ES6入門書籍總彙

1.var,let,const區別
答:(1).var有變量聲明提高,let&&const沒有,這樣致使了let,const必須聲明後才能夠訪問使用(tdz) => 暫時性死區」也意味着typeof再也不是一個百分之百安全的操做,若是一個變量沒有被聲明,使用typeof反而不會報錯(值會變爲'undefined')(沒有遇到let/const),(2)var,let能夠在定義後從新賦值,const是個常量,它不能夠(可是若是他是複雜數據類型,改變它的屬性值是沒問題的,與定義概念並不衝突),(3).var能夠重複聲明,取值去最後的聲明,let不容許在相同做用域內,重複聲明同一個變量,(3).塊狀做用域 => {}這句話有異議,可是說的頗有道理,塊級做用域的出現,實際上使得得到普遍應用的當即執行函數表達式(IIFE)再也不必要了。Object.freeze({}); => 凍結對象,(4).未定義就聲明的變量會默認爲window全局的變量,var的變量都歸window全部,let命令、const命令、class命令聲明的全局變量,不屬於頂層對象的屬性即不會歸window全部es6

總結:es6的六種聲明變量  => var let const function import class  注意:在瀏覽器環境指的是window對象,在 Node 指的是global對象。

2.變量的解構賦值 => es6容許必定的模式,從數組中和對象中提取,對變量進行賦值,這被稱爲解構數組

=> 只要某種數據結構具備 Iterator 接口,均可以採用數組形式的解構賦值,若是解構失敗,變量的值等於        
undefined

(1).數組的模式匹配 模式匹配」,只要等號兩邊的模式相同(數據結構),左邊的變量就會被賦予對應的值
    let [a, b, c] = [1, 2, 3]
(2).對象的解構賦值
    對象的解構與數組有一個重要的不一樣。數組的元素是按次序排列的,變量的取值由它的位置決定;而對象的                
    屬性沒有次序,變量必須與屬性同名,才能取到正確的值
    let {foo, too} = {foo: 'foo', too: 'too'}
(3).字符串的解構賦值
    字符串也能夠解構賦值。這是由於此時,字符串被轉換成了一個相似數組的對象

3.模板字符串瀏覽器

`${變量1},{變量2}` => `${fn()}`  {}最終會調用toString的方法,可嵌套

4.字符串擴展安全

5.函數的擴展數據結構

1.rest參數 ES6 引入 rest 參數(形式爲...變量名),用於獲取函數的多餘參數,這樣就不須要使用arguments對象了。rest 參數搭配的變量是一個數組,該變量將多餘的參數放入數組中。
相關文章
相關標籤/搜索