學習ES6中的解構賦值小記

2021-08-25 02:35:45 字數 1535 閱讀 7073

預設值可以是其他變數,但該變數必須已經宣告

物件的結構賦值,依據是屬性名的一致,物件的解構賦值更像是這種方式的簡寫:

// key 值相當於匹配的模式,value 值才是變數

let =

所以物件的解構賦值的內部機制,是先找到同名屬性,然後在賦值給對應的變數,真正賦值的是後者,而不是前者

物件的解構同樣也可以使用預設值,預設值產生的條件是物件的屬性值是嚴格等於 undefiend

思考:let } =時,報錯的原因(foo 沒有匹配到,為undefined,undefined的bar屬性顯然是不存在,導致報錯)

同樣的,將乙個已經宣告的變數進行解構賦值,必須使用圓括號的形式:

// 對於我們想強行進行賦值的,我們可以給其設定對應的 key 值,然後把他們放在 value 值上,這樣就可以利用解構賦值

let x;

( = )

解構賦值允許等號左邊的模式中,不防止任何變數名

如:

// 這裡的字串被轉換成了類陣列

let [a, b, c, d, e] = 'hello'

a // "h"

b // "e"

c // "l"

d // "l"

e // "o"

// 所以同樣具有 length 屬性

let = 'hello';

len// 5

如果等號右邊是數值和布林值,則會先轉為物件

let  = 123;

s === number.prototype.tostring // true

let = true;

s === boolean.prototype.tostring // true

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

同正常解構賦值一樣,引數的解構賦值,在於引數的書寫形式:

// 在這裡,函式內部感受到的只是 x 和 y

function

add([x, y])

同樣的函式引數的結構同樣可以使用預設值

function

move

( = {})

交換變數的值(乙個或者多個)

從函式返回多個值(函式只能返回乙個值,所以可以把多個值放進陣列或者物件裡面,使用解構賦值來進行接收)

函式引數的定義(解構賦值可以方便的把一組引數與變數名對應起來)

提取 json 資料(主要是利用物件解構賦值的特點進行提取 json 的資料)

函式引數的預設值(主要是防止在函式內部或多的進行對引數是否為 undefined 的判斷)

遍歷 map 結構

輸入模組的指定方法

ES6學習 解構賦值

解構賦值是對賦值運算子的擴充套件,是一種針對陣列或物件進行模式匹配,對其中變數進行賦值。解構源 解構賦值表示式的右邊部分 解構的目標 解構賦值表示式的左邊部分 注意 左右兩邊,結構格式要保持一致 陣列 let arr 1 2,3 let a,b,c arr console.log a,b,c 1 2...

ES6 學習 解構賦值

一 陣列解構 陣列解構,解構出來的值跟陣列下標是一一對應的,如果左邊變數多於右邊陣列,則左邊後面部分變數值為undefined,如果右邊陣列元素個數多於左邊解構變數個數,則左邊變數全都有值,且一一對應 1.簡單解構 let arr 1,2,5 let a b c arr a 1,b 2,c 5 2....

ES6中解構賦值

理解 解構賦值就是從目標物件或陣列中提取自己想要的變數。最常用的場景是 element ui 或 vant ui 按需引入,請求介面返回想要的資料。陣列解構 乙個蘿蔔乙個坑,按照順序進行 var a,b,c 12,13 a,b 這個寫法報錯 invalid destructuring assignm...