[JS]構成部品(symbol)の役割は何ですか?
2089 ワード
構成部品
ES 6は、「構成部品(symbol)」という元のデータ型を追加した.ユニークな識別子(唯一の識別子)を作成する場合は、構成部品を使用できます.Symbol()
を使用して構成部品値を作成できます.const person = Symbol('철수');
console.log(person);
// Symbol(철수)
構成部品の一意性
前述したように、構成部品は一意で一意であり、同じ値を持つ構成部品を作成するときに何が起こるかをコードで理解しましょう.const me = Symbol('철수');
const clone = Symbol('철수');
console.log(me == clone);
// 출력 : false
構成部品の値は同じですが、各構成部品は一意であるため、同じ連語(==
)に比べてfalse
が返されることがわかります.
構成部品がオブジェクト属性の場合
コンポーネントを使用して、オブジェクトのプロパティに識別子を作成できます.const people = {
"철수" : "friend",
"영미" : "friend",
"철수" : "brother",
};
for (person in people) {
console.log(person)
}
// 출력 : 철수
영미
peopleオブジェクトの名前と同じです.つまり、同じアトリビュートで重複しないように構成部品を使用することができます.const people = {
[Symbol("철수")] : "friend",
[Symbol("영미")] : "friend",
[Symbol("철수")] : "brother",
};
for (person in people) {
console.log(person)
}
// 출력 : undefined
予想と異なり、出力は定義されていません.これは、素子がfor...in
にないためである.リストできないため、構成部品を繰り返してはいけません.
したがって,オブジェクト属性配列を取得する方法がある.Object.getOwnPropertySymbols()
const people = {
[Symbol("철수")] : "friend",
[Symbol("영미")] : "friend",
[Symbol("철수")] : "brother",
};
const symbols = Object.getOwnPropertySymbols(people);
console.log(symbols);
// 출력 : (3) [Symbol(철수), Symbol(영미), Symbol(철수)]
配列なのでmapを使って属性にアクセスできます.const symbols = Object.getOwnPropertySymbols(people);
const value = symbols.map(symbol => people[symbol]);
console.log(value);
// 출력 :
(3) ['friend', 'friend', 'brother']
0: "friend"
1: "friend"
2: "brother"
length: 3
Reference
この問題について([JS]構成部品(symbol)の役割は何ですか?), 我々は、より多くの情報をここで見つけました
https://velog.io/@fkszm3/JS-심볼symbol은-무엇이고-하는-역할은
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
const person = Symbol('철수');
console.log(person);
// Symbol(철수)
const me = Symbol('철수');
const clone = Symbol('철수');
console.log(me == clone);
// 출력 : false
const people = {
"철수" : "friend",
"영미" : "friend",
"철수" : "brother",
};
for (person in people) {
console.log(person)
}
// 출력 : 철수
영미
const people = {
[Symbol("철수")] : "friend",
[Symbol("영미")] : "friend",
[Symbol("철수")] : "brother",
};
for (person in people) {
console.log(person)
}
// 출력 : undefined
const people = {
[Symbol("철수")] : "friend",
[Symbol("영미")] : "friend",
[Symbol("철수")] : "brother",
};
const symbols = Object.getOwnPropertySymbols(people);
console.log(symbols);
// 출력 : (3) [Symbol(철수), Symbol(영미), Symbol(철수)]
const symbols = Object.getOwnPropertySymbols(people);
const value = symbols.map(symbol => people[symbol]);
console.log(value);
// 출력 :
(3) ['friend', 'friend', 'brother']
0: "friend"
1: "friend"
2: "brother"
length: 3
Reference
この問題について([JS]構成部品(symbol)の役割は何ですか?), 我々は、より多くの情報をここで見つけました https://velog.io/@fkszm3/JS-심볼symbol은-무엇이고-하는-역할은テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol