オブジェクトの解凍
3240 ワード
この文章の内容はJavaScriptプレミアムプログラミング(第4版)を参考にしています.
1.オブジェクトの解凍とは、オブジェクトマッチングの構造を用いて、オブジェクト属性の割当値を実現することである.以下の例では、2つの等価コードが示されており、まずオブジェクトを用いて解凍されない.
1.オブジェクトの解凍とは、オブジェクトマッチングの構造を用いて、オブジェクト属性の割当値を実現することである.以下の例では、2つの等価コードが示されており、まずオブジェクトを用いて解凍されない.
//
let person={
name:'Chen',
age:23
};
let personName=person.name,
personAge=person.age;
console.log(personName); // Chen
console.log(personAge); // 23
, :
let person={
name:'Chen',
age:23
}
let {name:personName,age:personAge}=person;
console.log(personName); // Chen
console.log(personAge); // 23
2.構文を使用して、類似のオブジェクトの字面量の解において、複数の変数を宣言しながら複数の割当演算を実行することができます.変数に属性の名前を直接言わせたいなら、簡単な文法を使ってもいいです.let person={
name:"Chen",
age:23
};
let {name,age}=person;
console.log(name); // Chen
console(age); // 23
3.構成値はオブジェクトの属性と必ずしも一致しない.値を付けるときは属性を無視できますが、参照の属性が存在しない場合は、その変数はundefinedです.let person={
name:"Chen",
age:23
}
let {name,job}=person;
console.log(name); // Chen
console.log(job); // undefined
4.前に述べた引用属性がソースオブジェクトに存在しない場合にも適用されます.let person={
name:"Chen",
age:23
}
let {name,job="Web "}=person;
console.log(name); // Chen
console.log(job); // Web
5.内部で関数ToObject()を使ってソースデータ構造をオブジェクトに変換するように構成します.これは、オブジェクト解の上下の問いにおいて、元の値がすべて対象とされることを意味する.これは(ToObject()の定義によると、nullとundefinedが解かれないと、エラーが発生します.let {length}='Chen';
console.log(length); // 4
let {constructor:c}=4;
console.log(c===Number); // true
let { _ }=null; // TypeError
let { _ }=undefined; // TypeError
6.構文化は、変数が構文式で宣言される必要はありません.ただし、事前に宣言された変数の割り当てであれば、与えられた値の表現は括弧の中に含まれていなければなりません.let personName,personAge;
let person={
name:"Chen",
age:23
}
({name:personName,age:personAge}=person);
console.log(personName,personAge); // Chen,23
7.ネスト解除は、ネストを参照するための属性または付与対象に制限がありません.このためには、オブジェクトの属性を構成解除によってコピーすることができます.let person={
name:'Chen',
age:23,
job:{
title:'Web '
};
let personCopy={};
({
name:personCopy.name,
age:personCopy.age,
job:personCopy.job
}=person);
// personCopy,
//person.job personCopy
person.job.title='Hacker';
console.log(person);
// {name:'Chen',age:23,job:{title:'Web '}};
console.log(personCopy);
// {name:'Chen',age:23,job:{title:'Web '}};
8.構成解除値はネスト構造を使用して、ネストの属性にマッチすることができます.let person={
name:"Chen",
age:23,
job:{
title:"Web "
}
};
// title person.job.title
let {job:{title}}=person;
console.log(title); // Web
9.外層属性が定義されていない場合は、ネスト解を使用することができません.ソースオブジェクトもターゲットオブジェクトも同じです.let person={
job:{
title:"Web "
}
};
let personCopy={};
// foo undefined
({
foo:{
bar:personCopy.bar
}
}=person)
// TypeError:Cannot destructure property 'bar' of 'undefined' or 'null'
// job undefined
({
job:{
title:personCopy.job.title
}
}=person)
// TypeError:Cannot set property 'title' of undefined
10.今期のシェアはここで終わりました.ニコニコしていますか?あなたの助けを期待しています.一緒にピークに向かって頑張りましょう.