let是es6中提出的一種宣告變數的方式,在一定條件下代替var使用。
阻止了宣告提前
新增了塊級作用域
在相同作用域內,禁止多次宣告
`
..$..
`
模板字串用來更方便的拼接字串,代替""+…+"",${}內為變數,有返回值的函式或者簡易語句,但禁止直接放置程式結構。
宣告函式的縮寫,用來建立匿名函式。
function()=
>()
=>
匿名函式的()中可以新增形參列表,當列表中只有乙個形參時**()可省略**,當函式體中只有一則語句時大括號可省略,此時這則語句會被自動return。
箭頭函式會改變函式內部的this指向,使得內部this與箭頭函式外的this一致。
這個特性一定程度上限制了箭頭函式的使用,比如事件處理函式中如果使用箭頭函式,就無法使用this指向觸發元素,影響執行。
箭頭函式中無法使用arguments獲得引數。
for(var elem of 陣列)
注:for of 無法獲得元素位置for of在使用範圍上優於foreach,foreach只能遍歷索引陣列,而for of可用於字串及類陣列物件。
es6中對函式的引數進行增強,為引數的使用提供了更多方式。
在多型=>過載中我們講過arugments中儲存著函式傳入的引數列表 ,我們可以用此獲得引數傳入,但是此方法獲得的引數列表是無序的類陣列形式,無法與形參一一對應,也無法使用陣列函式。
function fun(形參1, ..., 形參n=預設值)
es6允許為函式的最後乙個引數提供預設值,以作為引數傳入值不足的備選值,如果實參數量與形參相等,則最後乙個引數使用傳入的值,如實參小於形參不等,最後乙個形參無值傳入,則使用備選值,也就是等號後的預設值。
注:帶預設值的引數只能有乙個且只能是最後乙個。預設值也可以在函式體中使用js新增,如:
形參n=形參n||預設值
當形參存在時,短路效應使得公式返回形參被賦予的值,當形參不存在時,程式向後執行返回預設值。
剩餘引數可完全代替arugments,剩餘引數實際上是在形參的末尾加乙個陣列,超出形參列表長度的實參會儲存在陣列中。
function fun(形參1, 形參2,...陣列名)
陣列前的…是收集的意思,不可以被打散。
…可以視為引數和零散元素的轉換符,在陣列打散中也會遇到。
有時引數會存在乙個陣列中,這時我們依次呼叫陣列元素傳入顯得太笨重,es6為此給出了新方案。
math.max(
...arr2)
此時的…是將陣列拆分成元素對應形參傳入的含義。
解構是從整體中抽取需要的資料的過程。
陣列解構可以將陣列中的每個元素對應成乙個變數儲存起來。
var arr =
[15,26]
;//傳統方法
var a = arr[0]
;var b = arr[1]
;//陣列解構
[a,b]
= arr;
陣列解構形式為;
[變數1,變數2,...]
= 陣列
物件解構與陣列解構等同。
= 物件
屬性與方法都可通過物件解構成為全域性變數/函式,解構時,等號前不必要寫全部屬性/方法,只要將需要的部分寫上即可,程式通過屬性名為後面變數賦值。
物件解構中,變數名預設為對應的屬性名,如一組「屬性名:變數名」中,省略了「:變數名」,則預設為對應的屬性名作為賦值後的全域性變數名。
在傳參時也可使用物件解構的方法,在實參中使用物件傳入,形參中設定解構語法,將物件的值轉變為變數。
ES6基礎之解構賦值
let x,y b a x a y b let x,y b a undefined x a y b 如果乙個陣列成員是null,預設值就不會生效,因為null不嚴格等於undefined。let x 1 null x null如果預設值是乙個表示式,那麼這個表示式是惰性求值的,即中只有在用到時才會求...
ES6基礎之 繼承extends
乙個類可以去繼承其他類裡面的東西,這裡定義乙個叫person的類,然後在constructor裡面新增兩個引數 name和birthday 下面再新增乙個自定義的方法intro,這個方法就是簡單地返回this.name和this.birthday class person intro 然後再定乙個c...
ES6基礎之 恒量const
使用const可以去宣告乙個衡量,這樣就不能夠給這個衡量去重新分配乙個新的值 例子 console.log fruit const fruit lemon console.log fruit 在控制台上會報語法錯誤 uncaught syntaxerror identifier fruit has ...