Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Symbol::Symbol.toStringTag静的データプロパティの使い方

Symbol.toStringTag静的データプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Symbol.toStringTagプロパティは、JavaScriptの組み込みオブジェクトであるSymbolに存在する、特別な静的データプロパティです。このプロパティは、あるオブジェクトがObject.prototype.toString()メソッドによって文字列表現に変換される際の、デフォルトの振る舞いをカスタマイズするために用いられるシンボル値です。

Object.prototype.toString()メソッドは、通常、オブジェクトの内部的な[[Class]]プロパティに基づいて"[object Type]"という形式の文字列を返します。しかし、オブジェクト自身、またはそのプロトタイプチェーン上のオブジェクトがSymbol.toStringTagという名前のプロパティを持ち、それに文字列値が設定されている場合、Object.prototype.toString()はその文字列値をTypeの部分として使用するようになります。

この機能は、特にカスタムオブジェクトやクラスを定義する際に非常に有用です。例えば、独自のMyClassというクラスを作成した場合、そのインスタンスに対してSymbol.toStringTagプロパティに"MyCustomObject"のような文字列を設定できます。これにより、new MyClass().toString()を呼び出すと、"[object MyCustomObject]"といった、より意味のある識別可能な文字列表現を得ることが可能になります。

このように、Symbol.toStringTagプロパティは、開発者がオブジェクトの文字列表現を意図的に制御し、デバッグやログ出力時の識別を容易にするための強力な手段を提供します。ただし、このプロパティはオブジェクトの「見た目」をカスタマイズするものであり、厳密な型チェックやオブジェクトの振る舞いそのものには影響を与えません。オブジェクトの型を正確に判断する際には、typeofinstanceof、またはより具体的なAPIを使用することが適切です。

公式リファレンス: Symbol.toStringTag

構文(syntax)

1const myObject = {
2  [Symbol.toStringTag]: 'MyType'
3};
4// myObject.toString() を呼び出すと、"[object MyType]" という文字列が返されます。

引数(parameters)

引数なし

引数はありません

戻り値(return)

symbol

Symbol.toStringTagは、オブジェクトのtoString()メソッドによって返される文字列のデフォルト値をカスタマイズするために使用されるシンボルです。

関連コンテンツ

関連プログラミング言語