【JavaScript ECMAScript】Symbol::Symbol.keyFor静的メソッドの使い方
Symbol.keyFor()静的メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Symbol.keyFor()メソッドは、JavaScriptのグローバルシンボルレジストリに登録されたSymbol(シンボル)値に対応するキー(文字列)を取得するメソッドです。グローバルシンボルレジストリとは、JavaScriptの実行環境全体でシンボルを共有・管理するための特別な領域を指します。このメソッドは、主にSymbol.for()メソッドによってグローバルシンボルレジストリに登録されたシンボルに対して使用されます。
具体的には、グローバルシンボルレジストリに登録されているシンボルを引数として渡すと、そのシンボルが登録される際に使用された文字列(キー)を戻り値として返します。もし、渡されたシンボルがグローバルシンボルレジストリに登録されていない場合、このメソッドはundefinedを返します。
例えば、Symbol.for("myKey")のようにして作成されたシンボルをSymbol.keyFor()の引数に渡すと、"myKey"という文字列が返されます。これにより、特定のシンボルがどの文字列キーによってグローバルに登録されたかを確認できます。
ただし、Symbol()コンストラクタで直接作成されたシンボルは、グローバルシンボルレジストリには登録されません。これらのシンボルは常にユニーク(一意)であり、特定のキーと関連付けられて共有されることを意図していないためです。そのため、Symbol()で作成されたシンボルをSymbol.keyFor()に渡してもキーは取得できず、常にundefinedが返されますのでご注意ください。このメソッドは、グローバルに共有されるシンボルとそのキーを逆引きで確認したい場合に役立ちます。
構文(syntax)
1const mySymbol = Symbol.for('myKeyString'); 2const key = Symbol.keyFor(mySymbol);
引数(parameters)
sym
- sym: Symbol: 変換したいシンボル値
戻り値(return)
string | undefined
指定されたグローバルシンボルに対応する文字列キーを返します。キーが存在しない場合は undefined を返します。