Symbol Objects | ||
---|---|---|
ES2022 (13) | ES2021 (12) | ES2020 (11) |
The Symbol Type | ||
ES2022 (13) | ES2021 (12) | ES2020 (11) |
ビルトイン シンボル (実装) | 型 | 説明 |
---|---|---|
@@hasInstance Symbol.hasInstance | 関数 | インスタンス確認 instanceof【インスタンス判定 演算子】で使用 |
@@isConcatSpreadable Symbol.isConcatSpreadable | Boolean | 連結配列展開 Array.concat【連結】で使用 |
@@iterator Symbol.iterator | 関数 | イテレータ作成 (for-of) |
@@match Symbol.match | 正規表現関数 | 正規表現検索 (詳細) 下記で使用 RegExp[ @@match ]【検索 (詳細)】 String.match【正規表現検索 (詳細)】 |
@@replace Symbol.replace | 正規表現関数 | 置換 (正規表現可・関数指定可) 下記で使用 RegExp[ @@replace ]【置換 (関数指定可)】 String.replace【置換 (正規表現可・関数指定可)】 |
@@search Symbol.search | 正規表現関数 | 正規表現検索 (簡易) 下記で使用 RegExp[ @@search ] 【検索 (簡易)】 String.search【正規表現検索 (簡易)】 |
@@species Symbol.species | 関数 | コンストラクタ定義 派生オブジェクトのコンストラクタで使用 |
@@split Symbol.split | 正規表現関数 | 分割 (正規表現可) 下記で使用 RegExp[ @@split ]【分割】 String.split【分割 (正規表現可)】 |
@@toPrimitive Symbol.toPrimitive | 関数 | プリミティブ値取得 Date[ @@toPrimitive ]【プリミティブ値取得】 Symbol[ @@toPrimitive ]【プリミティブ値取得】 |
@@toStringTag Symbol.toStringTag | 文字列 | タグ Object.toString【文字列変換】で使用 下記以外は、定義可能 標準組み込みオブジェクト または [ @@toStringTag ] プロパティ の定義があるオブジェクト |
@@unscopables Symbol.unscopables | オブジェクト | with 除外プロパティ |
プロパティ | 説明 | |
---|---|---|
Symbol.prototype | [ @@toStringTag ] | タグ [Symbol.toStringTag] |
Symbol.prototype. | constructor | コンストラクタ定義 |
Symbol.prototype. | description | 説明文 |
Symbol. | prototype | プロトタイプ |
構文 | 説明 |
---|---|
Symbol( [ description ] ) | ローカルシンボル生成 (一意) |
メソッド | 説明 | |
---|---|---|
Symbol.prototype | [ @@toPrimitive ] ( hint ) | プリミティブ値取得 [Symbol.toPrimitive] |
Symbol. | for( key ) | グローバルシンボル生成 |
Symbol. | keyFor( sym ) | キー取得 (グローバルシンボル) |
Symbol.prototype. | toString( ) | 文字列変換 |
Symbol.prototype. | valueOf( ) | プリミティブ値取得 |
// ビルトイン シンボル
console.log(Symbol.search);
// 出力:Symbol("Symbol.search")
// ローカルシンボル
const sym1 = Symbol('Description');
console.log(sym1);
// 出力:Symbol("Description")
const sym2 = Symbol('Description');
console.log(sym2);
// 出力:Symbol("Description")
console.log(sym1 === sym2);
// 出力:false
// グローバルシンボル
const symGlobal1 = Symbol.for('Key');
console.log(symGlobal1);
// 出力:Symbol("Key")
const symGlobal2 = Symbol.for('Key');
console.log(symGlobal2);
// 出力:Symbol("Key")
console.log(symGlobal1 === symGlobal2);
// 出力:true
// description【説明文】プロパティ
console.log(Symbol.search.description);
// 出力:Symbol.search
console.log(sym1.description);
// 出力:Description
console.log(sym2.description);
// 出力:Description
console.log(symGlobal1.description);
// 出力:Key
console.log(symGlobal2.description);
// 出力:Key