JavaScriptでソース内ユニークIDが必要な時に便利なSymbol型について(未完)

JavaScriptでソース内ユニークIDが必要な時に便利なSymbol型

シンボルは、他と重複しない値ユニークなIDが必要な時に便利です。

シンボルを利用するメリットは何でしょうか?

例えば、値そのものに意味がなく、その名前にだけ意味がある様な定数を表す時に、下記の様なコードを書く場合があります。

JavaScript
const January = 1;
const  February = 2;
const March = 3;
const Aril = 4:
...
const December = 5;

一般的に、この様な定数では 1,2…といった値に意味はなく、January, Februaryといった名前に識別肢としての意味があるだけです。

しかし、これらの定数を利用すべき場面で、定数 / 数値いずれを利用してもエラーがでません。

JavaScript
if (month === January){...}
if (month === 1){...}

これは両方正しいです。

しかし、コードの可読性を考えれば「1」で比較するのは好ましくありませんし、「1」を書くことで識別が適切に行われるべきでもありません。

こういう、識別子や選択肢のために定数を利用する場合、それぞれの定数に対してSymbol()を定義することで、それぞれの定数をユニーク化します。

メソッド意味返り値
Symbol(文字列または数値)
*省略可能
シンボルを生成するシンボル
Symbolの仕様
JavaScript
const January = Symbol();
const  February =  Symbol();
const March =  Symbol();

異なるSymbolで作成されたシンボルは、同名であってもユニーク(一意)になります。これはSymbolの引数を省略した場合も同様です。

インストラクター