JS核心之ES6應用基礎 一

2021-10-08 12:16:17 字數 2243 閱讀 8623

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 ...