研究-分解構造(第5章)
25178 ワード
ES 6は構造分解を導入し,データ構造をより小さく,より簡単にした.
オブジェクト構造の分解
オブジェクト構造の分解 const node ={
type : "integer",
name : "javascript"
}
let {type , name } = node;
console.log(type); // interger
console.log(name); // javascript
他の非名前領域変数に割り当てる const node ={
type : "Identifier",
name : "foo"
}
let { type : localType , name : localName } = node;
console.log(localType); // "Identifier"
console.log(localName); // "foo"
デフォルトの割り当て const node = {
type: "String",
name: "test"
}
const {type , name , value } = node;
console.log(type); // String
console.log(name); // test
console.log(value); // undefined
ただし、デフォルト値は明確にできます.const node ={
type: "String",
name: "test"
}
const {type , name , value = true } = node;
console.log(type); // String
console.log(name); // test
console.log(value); // true
オブジェクトに存在しないプロパティ名を使用してゾーン変数を指定すると、そのゾーン変数に未定義の値が割り当てられます.let node = {
type : "String"
};
const {type : localType , name : localName = "bar" } =node;
console.log(localType); // String
console.log(node); // { type : 'String'}
console.log(localName); // bar
console.log(name); // error
上のコードでは、localNameのデフォルト値が指定されています.
nameにはデフォルト値が指定されていないため、ロードしようとするとエラーが発生します.
ネストされたオブジェクトの分解 let node = {
type : "String",
name : "test",
loc : {
start:{
line:1,
column:1
},
end:{
line:1,
column:4
}
}
};
let {
loc : {start
}
} = node;
console.log(start.line); // 1
console.log(start.column); // 1
本当にたくさん使いましたね
ぶんかいアレイこうぞう let colors = ["red" , "green" , "blue"]
let [firstColor , secondColor] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
もし私が2番目の要素だけを取りたいなら?let colors = ["red" , "green" , "blue"];
let [, thirdColor] = colors; // green
console.log(thirdColor);
3つ目の要素を持ってきたいだけかもしれません.let colors = ["red" , "green" , "blue"];
let [, ,thirdColor] = colors; // blue
console.log(thirdColor);
タイル-構造分解の割り当て
let colors = ["red" , "green" , "blue"],
firstColor = "black",
secondColor = "purple";
[firstColor , secondColor] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
タイル-swap
let a= 1,
b=2;
[a,b] = [b,a];
console.log(a); // 2
console.log(b); // 1
タイル-デフォルト
let colors = ["red"];
let [firstColor , secondColor = "green"] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
配列-残りの要素
let colors = ["red" , "green" , "blue"];
let [firstColor , ...restColors] = colors;
console.log(firstColor); // red
console.log(restColors); // ['green','blue']
こんごうこうぞうぶんかい let node = {
type : "String",
name : "test",
loc : {
start : {
line : 1,
column : 1
},
end : {
line : 1,
column : 4
}
},
range : [0,3]
};
let {
loc : {start},
range: [startIndex],
range
} = node;
console.log(start.line); // 1
console.log(start.column); // 1
console.log(startIndex); // 0
console.log(range); // [0,3]
ぶんかいパラメータこうぞう function setCookie(name , value , {secure , path , domain , expires}){
console.log(name); // type
console.log(value); // js
console.log(secure); // true
console.log(path); // undefined
console.log(domain); // undefined
console.log(expires); // 60000
}
setCookie("type" , "js" , {
secure: true,
expires:60000
})
Reference
この問題について(研究-分解構造(第5章)), 我々は、より多くの情報をここで見つけました
https://velog.io/@ash3767/자바스크립트-스터디-구조분해
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
const node ={
type : "integer",
name : "javascript"
}
let {type , name } = node;
console.log(type); // interger
console.log(name); // javascript
const node ={
type : "Identifier",
name : "foo"
}
let { type : localType , name : localName } = node;
console.log(localType); // "Identifier"
console.log(localName); // "foo"
デフォルトの割り当て const node = {
type: "String",
name: "test"
}
const {type , name , value } = node;
console.log(type); // String
console.log(name); // test
console.log(value); // undefined
ただし、デフォルト値は明確にできます.const node ={
type: "String",
name: "test"
}
const {type , name , value = true } = node;
console.log(type); // String
console.log(name); // test
console.log(value); // true
オブジェクトに存在しないプロパティ名を使用してゾーン変数を指定すると、そのゾーン変数に未定義の値が割り当てられます.let node = {
type : "String"
};
const {type : localType , name : localName = "bar" } =node;
console.log(localType); // String
console.log(node); // { type : 'String'}
console.log(localName); // bar
console.log(name); // error
上のコードでは、localNameのデフォルト値が指定されています.
nameにはデフォルト値が指定されていないため、ロードしようとするとエラーが発生します.
ネストされたオブジェクトの分解 let node = {
type : "String",
name : "test",
loc : {
start:{
line:1,
column:1
},
end:{
line:1,
column:4
}
}
};
let {
loc : {start
}
} = node;
console.log(start.line); // 1
console.log(start.column); // 1
本当にたくさん使いましたね
ぶんかいアレイこうぞう let colors = ["red" , "green" , "blue"]
let [firstColor , secondColor] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
もし私が2番目の要素だけを取りたいなら?let colors = ["red" , "green" , "blue"];
let [, thirdColor] = colors; // green
console.log(thirdColor);
3つ目の要素を持ってきたいだけかもしれません.let colors = ["red" , "green" , "blue"];
let [, ,thirdColor] = colors; // blue
console.log(thirdColor);
タイル-構造分解の割り当て
let colors = ["red" , "green" , "blue"],
firstColor = "black",
secondColor = "purple";
[firstColor , secondColor] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
タイル-swap
let a= 1,
b=2;
[a,b] = [b,a];
console.log(a); // 2
console.log(b); // 1
タイル-デフォルト
let colors = ["red"];
let [firstColor , secondColor = "green"] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
配列-残りの要素
let colors = ["red" , "green" , "blue"];
let [firstColor , ...restColors] = colors;
console.log(firstColor); // red
console.log(restColors); // ['green','blue']
こんごうこうぞうぶんかい let node = {
type : "String",
name : "test",
loc : {
start : {
line : 1,
column : 1
},
end : {
line : 1,
column : 4
}
},
range : [0,3]
};
let {
loc : {start},
range: [startIndex],
range
} = node;
console.log(start.line); // 1
console.log(start.column); // 1
console.log(startIndex); // 0
console.log(range); // [0,3]
ぶんかいパラメータこうぞう function setCookie(name , value , {secure , path , domain , expires}){
console.log(name); // type
console.log(value); // js
console.log(secure); // true
console.log(path); // undefined
console.log(domain); // undefined
console.log(expires); // 60000
}
setCookie("type" , "js" , {
secure: true,
expires:60000
})
Reference
この問題について(研究-分解構造(第5章)), 我々は、より多くの情報をここで見つけました
https://velog.io/@ash3767/자바스크립트-스터디-구조분해
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
const node = {
type: "String",
name: "test"
}
const {type , name , value } = node;
console.log(type); // String
console.log(name); // test
console.log(value); // undefined
const node ={
type: "String",
name: "test"
}
const {type , name , value = true } = node;
console.log(type); // String
console.log(name); // test
console.log(value); // true
let node = {
type : "String"
};
const {type : localType , name : localName = "bar" } =node;
console.log(localType); // String
console.log(node); // { type : 'String'}
console.log(localName); // bar
console.log(name); // error
let node = {
type : "String",
name : "test",
loc : {
start:{
line:1,
column:1
},
end:{
line:1,
column:4
}
}
};
let {
loc : {start
}
} = node;
console.log(start.line); // 1
console.log(start.column); // 1
本当にたくさん使いましたねぶんかいアレイこうぞう let colors = ["red" , "green" , "blue"]
let [firstColor , secondColor] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
もし私が2番目の要素だけを取りたいなら?let colors = ["red" , "green" , "blue"];
let [, thirdColor] = colors; // green
console.log(thirdColor);
3つ目の要素を持ってきたいだけかもしれません.let colors = ["red" , "green" , "blue"];
let [, ,thirdColor] = colors; // blue
console.log(thirdColor);
タイル-構造分解の割り当て
let colors = ["red" , "green" , "blue"],
firstColor = "black",
secondColor = "purple";
[firstColor , secondColor] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
タイル-swap
let a= 1,
b=2;
[a,b] = [b,a];
console.log(a); // 2
console.log(b); // 1
タイル-デフォルト
let colors = ["red"];
let [firstColor , secondColor = "green"] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
配列-残りの要素
let colors = ["red" , "green" , "blue"];
let [firstColor , ...restColors] = colors;
console.log(firstColor); // red
console.log(restColors); // ['green','blue']
こんごうこうぞうぶんかい let node = {
type : "String",
name : "test",
loc : {
start : {
line : 1,
column : 1
},
end : {
line : 1,
column : 4
}
},
range : [0,3]
};
let {
loc : {start},
range: [startIndex],
range
} = node;
console.log(start.line); // 1
console.log(start.column); // 1
console.log(startIndex); // 0
console.log(range); // [0,3]
ぶんかいパラメータこうぞう function setCookie(name , value , {secure , path , domain , expires}){
console.log(name); // type
console.log(value); // js
console.log(secure); // true
console.log(path); // undefined
console.log(domain); // undefined
console.log(expires); // 60000
}
setCookie("type" , "js" , {
secure: true,
expires:60000
})
Reference
この問題について(研究-分解構造(第5章)), 我々は、より多くの情報をここで見つけました
https://velog.io/@ash3767/자바스크립트-스터디-구조분해
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
let colors = ["red" , "green" , "blue"]
let [firstColor , secondColor] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
let colors = ["red" , "green" , "blue"];
let [, thirdColor] = colors; // green
console.log(thirdColor);
let colors = ["red" , "green" , "blue"];
let [, ,thirdColor] = colors; // blue
console.log(thirdColor);
let colors = ["red" , "green" , "blue"],
firstColor = "black",
secondColor = "purple";
[firstColor , secondColor] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
let a= 1,
b=2;
[a,b] = [b,a];
console.log(a); // 2
console.log(b); // 1
let colors = ["red"];
let [firstColor , secondColor = "green"] = colors;
console.log(firstColor); // red
console.log(secondColor); // green
let colors = ["red" , "green" , "blue"];
let [firstColor , ...restColors] = colors;
console.log(firstColor); // red
console.log(restColors); // ['green','blue']
let node = {
type : "String",
name : "test",
loc : {
start : {
line : 1,
column : 1
},
end : {
line : 1,
column : 4
}
},
range : [0,3]
};
let {
loc : {start},
range: [startIndex],
range
} = node;
console.log(start.line); // 1
console.log(start.column); // 1
console.log(startIndex); // 0
console.log(range); // [0,3]
ぶんかいパラメータこうぞう function setCookie(name , value , {secure , path , domain , expires}){
console.log(name); // type
console.log(value); // js
console.log(secure); // true
console.log(path); // undefined
console.log(domain); // undefined
console.log(expires); // 60000
}
setCookie("type" , "js" , {
secure: true,
expires:60000
})
Reference
この問題について(研究-分解構造(第5章)), 我々は、より多くの情報をここで見つけました
https://velog.io/@ash3767/자바스크립트-스터디-구조분해
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
function setCookie(name , value , {secure , path , domain , expires}){
console.log(name); // type
console.log(value); // js
console.log(secure); // true
console.log(path); // undefined
console.log(domain); // undefined
console.log(expires); // 60000
}
setCookie("type" , "js" , {
secure: true,
expires:60000
})
Reference
この問題について(研究-分解構造(第5章)), 我々は、より多くの情報をここで見つけました https://velog.io/@ash3767/자바스크립트-스터디-구조분해テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol