ES 6デフォーメーション、エクステンション演算子/拡張演算子
4985 ワード
割り当て値
ES 6は、一定のパターンに従って配列とオブジェクトから値を抽出することができ、変数に値を割り当てることができます.
1.構成解除値:基本的な使い方、構成を改めて名前をつけ、デフォルトを解く
文法は三つの点です.
ES 6は、一定のパターンに従って配列とオブジェクトから値を抽出することができ、変数に値を割り当てることができます.
1.構成解除値:基本的な使い方、構成を改めて名前をつけ、デフォルトを解く
: , , ,
let json = [" ", 20, " "]
let [name,age,sex] = json;
console.log(name,age,sex); // 20
// : , , , :let ["name","age","sex"] = [" ", 20, " "]; 。
// :
name=" " // " " " "
----------------------------------------------------
: key ,
let json = {
name:" ",
age:20,
sex:" "
}
let { name,age:a,sex:b } = json;
console.log(name,a,b); // 20
----------------------------------------------------
:
let json = [" ", 20, " "]
let [name,age,sex,love=" "] = json;
console.log(name,age,sex,love); // 20
: : , null , , null 。
undefiend , 。 :
let [name,age,sex,love=" "] = [" ", 20, " ",undefiend];
console.log(name,age,sex,love); // 20
let [name,age,sex,love=" "] = [" ", 20, " ",null];
console.log(name,age,sex,love); // 20 null
二つの数を交換する位置let a = 10;
let b = 20;
[a,b] = [b,a]
console.log(a,b) // 20 10
2.オブジェクトの割り当て値: // :
let {name,age,sex} = {name:" ", age:"20", sex:" "} ;
console.log(name); //
console.log(age); // 20
console.log(sex); //
// :
let {name,age, sex, friend} = {name:" ", age:"20", sex:" ", friend:[" ", " "]} ;
console.log(name); //
console.log(age); // 20
console.log(sex); //
console.log(friend); // [" ", " "]
// :
let {name,age, sex, friend, pet} = {name:" ", age:"20", sex:" ", friend:[" ", " "], pet:{name:" " ,age:"2"}} ;
console.log(name); //
console.log(age); // 20
console.log(sex); //
console.log(friend); // [" ", " "]
console.log(pet); // {name:" " ,age:"2"}
// : ,key , key , undefined, 。
let {name:str} = {name:" "};
console.log(name); //
console.log(str); //
// , , key ;
オブジェクトについては、まず変数を定義してから、値を分解します. :もし{}前に変数宣言子がないなら、ブラウザは直接「}ブロックレベルのスコープと見なして、文法エラーを報告します. , , ,
let a;
{ a } = { a:"123", b:12}
----------------------------------------------------------
, , ()
let a;
({ a } = { a:"123", b:12})
3.配列ネスト解除賦課値: let [arr1, [arr2, arr3, [arr4, arr5]]] = [1, [2, 3, [4, 5]]];
concole.log(arr1,arr2,arr3,arr4,arr5) // 1, 2, 3, 4, 5
// : ,
// undefiend
let [arr] = [];
console.log(arr) // undefiend
let [a, b, c] = [1, 2, 3];
console.log(a) // 1
console.log(b) // 2
console.log(c) // 3
// :
let [a, , , c] = [1, 2, 3];
console.log(a) // 1
console.log(c) // undefined
4.基本タイプの分解賦課値:(開発中は気絶が少ない.了解すればいい) //String , 。
let [a, b, c, d, e] = " ";
console.log(a) //
console.log(b) //
console.log(c) //
console.log(d) //
console.log(e) //
//Number , 。
let [a, b, c, d, e] = 12306;
console.log(a) //
console.log(b) //
console.log(c) //
console.log(d) //
console.log(e) //
拡張演算子文法は三つの点です.
:
let arr = ["red","blue",green]
console.log(...arr) // red blue green
-------------------------------------------------------
: ,
function show(...a){
console.log(arguments) // [1,2,3,4,5,6]
console.log(a) // [1,2,3,4,5,6]
}
show(1,2,3,4,5,6)
-------------------------------------------------------
:
function show(a,b,...c){
console.log(a) // 1
console.log(b) // 2
console.log(c) // [3,4,5,6]
}
show(1,2,3,4,5,6)
: ,
function show(a,...b,c){
//
}
show(1,2,3,4,5,6)
コピー配列、オブジェクト:浅いコピーlet arr = [1,2,3,4];
//let arr2 = Array.from(arr) //
let arr2 = [...arr]
console.log(arr2) // [1,2,3,4]
let arr = {name:"a",age:12};
let arr2 = {...arr}
console.log(arr2) // {name:"a",age:12}