你必須知道的ES6

1.基本介紹

  1)es6的全稱是:ECMAScript6.0,ECMAScript 6.0(如下簡稱 ES6)是 JavaScript 語言的下一代標準,於2015年6月正式發佈。目標「使得 JavaScript 語言能夠用來編寫複雜的大型應用程序,成爲企業級開發語言」前端

  2)爲何要學習ES6 es6的出現,給前端開發人員帶來了新的驚喜,它包含了一些很棒的新特性,能夠更加方便的實現不少複雜的操做,提升開發人員的效率。流行的js框架都使用了大量的es6語法。es6

2.加入了let和const

1).let

let與var同樣都是用於定義變量。數組

區別框架

  • 塊級做用域(第三種做用域)。let所聲明的變量,只在let命令所在的代碼塊內有效。
  • let沒有「變量提高」現象。
  • 不會成爲window對象的屬性
  • 暫時性死區(TDZ)

1.塊級做用域

在此以前是沒有塊級做用域的,只能經過function來劃分做用域。在es6中經過let關鍵字實現了塊級做用域。函數

上面的代碼中,let 定義的變量只在{ }範圍內有效,出了{ }就無效了。

2.let定義的變量不會提高

3.不會成爲window對象的屬性

4.暫時性死區(TDZ)

ES6明確規定,若是區塊中存在let和const命令,這個區塊對這些命令聲明的變量,從一開始就造成了封閉做用域。凡是在聲明以前就使用這些變量,就會報錯。這在語法上,稱爲「暫時性死區」(temporal dead zone,簡稱 TDZ),就是要先定義變量,再使用。學習

2).const

1.const:聲明常量,值不能改變。

2.必須當即初始化

3.解構賦值

1)什麼是解構賦值

ES6 容許按照必定模式,從數組和對象中提取值,對變量進行賦值,這被稱爲解構(Destructuring)。this

  • 做用:是對變量進行賦值。
  • 變量的值的來源:是數組或者對象
  • 規則:有必定的模式

2)數組的解構賦值

按下標一一對應地去賦值 : spa

左右數量不等:
跳過部分 :
默認值:
嵌套:

3)對象的解構賦值

1,按屬性名的一一對應關係來進行賦值

2,將現有對象的屬性,賦值到某個變量

只要數據實現迭代器接口就能夠用解構賦值。包括:數組、對象、字符串

4.數組擴展

1,Array.isArray()判斷是不是一個數組: Array.isArray(arr) //ture或者false3d

2,forEach()對數組進行循環。rest

數組.foreach( function(item,index ,arr){
        // item : 當前的數組元素,至關於arr[index]	  
        // index:數組元素的索引
        // arr 當前的數組
        } );
複製代碼

item,index,arr只是形參名,能夠本身定義。

3,map()映射:逐一處理原數組元素,返回到一個新數組

4,filter()逐一過濾原數組元素,留下符合條件的元素獲得一個新數組。

5,reduce()不斷地將前一項和後一項的值進行運算(具體規則是由回調函數決定的,每次的運算會涉及兩項),把前一輪運算的結果做爲當前運算的前一項。返回最後結果。

數組元素是對象的例子:

6,some()只要數組中的某一個元素符合指定的條件,就會返回真,不然返回假。

7,every()若是數組中的全部元素都符合指定的條件,才返回true,不然返回false。只要有一個知足,則總體的結果就是false。

8,Array.from()是Array構造器的靜態方法,將類數組對象轉成真正的數組,以arguments爲例

9,Array.of()將一組值轉換爲數組,與Array.from功能類似,能夠理解用來建立數組。

5.函數擴展

1,ES6以後能夠設置參數默認值

因爲參數變量是默認聲明的,因此不能用let或const再次聲明 2,rest參數

注意:

  • f中有兩個變量,a,rest
  • rest是一個數組
  • rest只是一個變量名,它是能夠本身定義的
  • 最後一個必須是形參
  • rest取代了arguments對象

3,調用函數時…和定義函數時…是不同的

上面的代碼中,…是拓展運算符,是用來把一個數組「打散」

上面在定義函數時使用的…稱爲rest運算符,它的功能是把零散的參數列表打包成一個數組。

箭頭函數

1,做用 :簡化函數的定義,讓咱們寫函數時更加的方便,快捷。

這裏把function省略了,用=>來代替。

只有一個參數可省掉():let f=x=>{return x*x}
        若有多個形參,或者沒有形參,則()不能少
        若是隻有一句函數體(非return),則能夠不寫{}:let f=x=>console.log(x*x)
        若是隻有一句函數體,並它是return語句 ,則return也能夠省,{}也能夠省:let f=x=>x*x
複製代碼

2,箭頭函數的一些特性

  • 不能夠使用new命令,不然會出錯誤,以下:

  • arguments在函數體內不存在:

  • 若是要用實參列表,能夠用 rest 參數代替:

  • 箭頭函數沒有本身的this:

能夠看到上面的箭頭函數由obj所調用,可是this並無指向obj。因此箭頭函數是沒有this的。

下一篇將淺析this。

相關文章
相關標籤/搜索