ES6 字串 函式解構賦值 簡單易懂

2021-10-08 22:12:02 字數 1768 閱讀 1155

字串也可以解構賦值。這是因為此時,字串被轉換成了乙個類似陣列的物件。

const

[a, b, c, d, e]

='hello'

;a // "h"

b // "e"

c // "l"

d // "l"

e // "o"

類似陣列的物件都有乙個length屬性,因此還可以對這個屬性解構賦值。

let

='hello'

;len // 5

解構賦值的規則是,只要等號右邊的值不是物件或陣列,就先將其轉為物件。由於undefinednull無法轉為物件,所以對它們進行解構賦值,都會報錯。

let

= undefined;

// typeerror

let=

null

;// typeerror

函式的引數也可以使用解構賦值。

function

add(

[x, y]

)add([

1,2]

);// 3

上面**中,函式add的引數表面上是乙個陣列,但在傳入引數的那一刻,陣列引數就被解構成變數xy。對於函式內部的**來說,它們能感受到的引數就是xy

下面是另乙個例子。

[[1

,2],

[3,4

]].map((

[a, b]

)=> a + b)

;// [ 3, 7 ]

函式引數的解構也可以使用預設值。

function

move(=

)move()

;// [3, 8]

move()

;// [3, 0]

move()

;// [0, 0]

move()

;// [0, 0]

上面**中,函式move的引數是乙個物件,通過對這個物件進行解構,得到變數xy的值。如果解構失敗,xy等於預設值。

注意,下面的寫法會得到不一樣的結果。

function

move(=

)move()

;// [3, 8]

move()

;// [3, undefined]

move()

;// [undefined, undefined]

move()

;// [0, 0]

上面**是為函式move的引數指定預設值,而不是為變數xy指定預設值,所以會得到與前一種寫法不同的結果。

undefined就會觸發函式引數的預設值。

[

1, undefined,3]

.map

((x =

'yes'

)=> x)

;// [ 1, 'yes', 3 ]

ES6 字串 字串

又到了一天一度的寫筆記的時間了,今天看的es6字串部分,因為內容我感覺挺多的,而且需要理解,所以第二個部分模板字串的筆記就放到明天來寫了,今天就寫一下學習字串物件的筆記,筆記分為以下幾點 開始今天的筆記吧!什麼字元的表示方法?第一次聽到這個問題的時候,可能一臉蒙,我查閱了一下資料,簡單的大概的了解了...

複習es6 解構賦值 字串的擴充套件

1.陣列的解構賦值 從陣列中獲得變數的值,給對應的宣告變數賦值,有次序和對應位置賦值 解構賦值的時候右邊必須可以遍歷 解構賦值可以使用預設值 惰性求值,當賦值時候為undefined時候,預設是個函式就會執行函式 2.物件解構賦值 與陣列不同的是,物件沒有按次序排序 物件按照屬性名賦值 3.字串擴充...

ES6新增字串模板和解構賦值

當我們需要拼接字串時,往往會遇到一些不便,比如變數太多,用的太多導致自己都看不清哪些內容,長還不清晰,換行需要加轉義字元等等。舊語法 var name 張三 var year 1995 var month 6 console.log name 是 year 年 month 月份 n出生的 es6的字...