前端基礎 ECMAScript解構(拆包)

2021-10-04 10:32:02 字數 2584 閱讀 8178

在es6中,可以使用解構從陣列和物件提取值並賦值給獨特的變數,即將陣列或物件中的值,拆成乙個乙個變數。

解構:自動解析陣列或物件中的值,並賦值給指定的變數。

將陣列中的值,取出並賦值給多個變數

var arr =[3

,4,5

];var[a, b, c]

= arr;

console.

log(a, b, c)

;//還可以忽略值 需要使用,佔位

var arr =[3

,4,5

];var[a,

, c]

= arr;

console.

log(a, c)

;//函式返回值為陣列,進行解構

functionf5(

)var

[a, b, c]=f5

(); console.

log(a, b, c)

;

將物件中的成員值,取出並賦值給多個變數(變數名與物件成員名一致)

var person =

;//解構時 {}中的變數名,不能加引號

var= person;

console.

log(nickname, age, ***)

;//可以忽略值 直接忽略 不需要佔位

var= person;

console.

log(nickname, ***)

;

5.3.1 函式引數與解構

函式引數使用解構陣列或解構物件形式

//1.函式形參,使用解構陣列形式,呼叫函式時需要傳遞陣列實參

functionf1(

[x,y,z]

)var arr =[1

,2,3

];f1(arr)

;//相當於

/*function f1(a)

var arr = [1,2,3];

f1(arr);

*///2.函式形參,使用解構物件形式,呼叫函式時需要傳遞物件實參

functionf2(

)var obj =;f2

(obj)

;//相當於

/*function f1(a) = a;

console.log(nickname,age,***);

}var obj = ;

f2(obj);

*/

5.3.2 預設值與解構陣列

函式引數使用解構陣列 並設定預設值

//1.函式引數使用解構陣列,呼叫函式不傳引數會報錯

functionfn(

[x, y, z])fn

();//會報錯

<

/script>

//2.函式引數使用解構陣列,對整個陣列設定預設值為空陣列

functionf1(

[x, y, z]=[

])f1(

);//不報錯 x y z 都是 undefined

//3.函式引數使用解構陣列,對整個陣列設定預設值,陣列中每個變數對應乙個預設值

functionf2(

[x, y, z]=[

1,2,

3])f2

();//不報錯 x=1 y=2 z=3f2(

[4,5

,6])

;// x=4 y=5 z=6

//4.函式引數使用解構陣列,對整個陣列設定預設值為空陣列, 在解構陣列中對每個變數設定乙個預設值

functionf3(

[x=1

, y=

2, z=3]

=)f3();

//不報錯 x=1 y=2 z=3f3(

[4,5

,6])

;// x=4 y=5 z=6

<

/script>

5.3.3 預設值與解構物件

函式引數使用解構物件 並設定預設值

//1.函式引數使用解構物件,呼叫函式不傳引數會報錯

functionfn(

)fn()

;//會報錯

<

/script>

//2.函式引數使用解構物件,對整個物件設定預設值為空物件

functionf1(

=)f1(

);//不報錯 x y z 都是 undefined

//3.函式引數使用解構物件,對整個物件設定預設值,物件中每個變數對應乙個預設值

functionf2(

=)f2(

);//不報錯 x=1 y=2 z=3f2(

);// x=4 y=5 z=6

//4.函式引數使用解構物件,對整個物件設定預設值為空物件, 在解構物件中對每個變數設定乙個預設值

functionf3(

=)f3(

);//不報錯 x=1 y=2 z=3f3(

);// x=4 y=5 z=6

<

/script>

前端基礎 ECMAScript類和物件

es6中新增了對類的支援,引入了class關鍵字 es6中提供的類實際上只是js原型模式的包裝。現在提供class支援後,物件的建立 繼承更加直觀。class類中,可以包含 構造方法 例項方法 靜態方法。類的定義 class a 例項方法 say 靜態方法 靜態方法與例項方法 同名互不影響 stat...

ECMAScript 基礎注意點

1.在 ecmascript 中,變數可以存在兩種型別的值,即原始值和引用值 原始值 儲存在棧 stack 中的簡單資料段,也就是說,它們的值直接儲存在變數訪問的位置。引用值 儲存在堆 heap 中的物件,也就是說,儲存在變數處的值是乙個指標 point 指向儲存物件的記憶體處 2.為變數賦值時,e...

ECMAScript基礎(關鍵字,保留字)

關鍵字 break,else,new,var,case,finally,return,void,catch,for,switch,while,continue,function,this,with,default,if,throw,delete,in,try,do,instanceof typeof...