Symbol【シンボル】オブジェクト
メモ ビルトイン シンボル プロパティ 関数 メソッド 例
メモ
概要
〔 例 〕- 組み込みシンボル
- ビルトイン シンボル 参照
- ローカルシンボル
- Symbol【ローカルシンボル生成 (一意)】関数で生成
- 呼び出し毎に、一意シンボル
- グローバルシンボル
- Symbol.for【グローバルシンボル生成】 メソッドで生成
- 指定キーが一致すると同一シンボル
外部リンク
- ECMA-262 (英語)
Symbol Objects ES2024 (15) ES2023 (14) ES2022 (13) The Symbol Type ES2024 (15) ES2023 (14) ES2022 (13)
ビルトイン シンボル
ビルトイン シンボル (実装) | 型 | 説明 |
---|---|---|
@@hasInstance Symbol.hasInstance | 関数 | インスタンス確認 instanceof【インスタンス判定 演算子】で使用 |
@@isConcatSpreadable Symbol.isConcatSpreadable | Boolean | 連結配列展開 Array.concat【連結】で使用 |
@@iterator Symbol.iterator | 関数 | イテレータ作成 (for-of) |
@@match Symbol.match | 正規表現関数 | 正規表現検索 (詳細) 下記で使用 RegExp[ @@match ]【検索 (詳細)】 String.match【正規表現検索 (詳細)】 |
@@matchAll Symbol.matchAll | 正規表現関数 | 正規表現検索 (詳細イテレータ) 下記で使用 RegExp[ @@matchAll ]【検索 (詳細イテレータ)】 String.matchAll【正規表現検索 (詳細イテレータ)】 |
@@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