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