この翻訳は不完全です。英語から この記事を翻訳 してください。

well-known symbolであるSymbol.toStringTagは、オブジェクトを説明するデフォルト文字列の作成に使用される文字列値のプロパティです。Object.prototype.toString()メソッドによって内部的にアクセスされます。

Symbol.toStringTag のプロパティ属性
書込可能 不可
列挙可能 不可
設定可能 不可

説明

多くのJavaScriptの型にはデフォルトでタグがついています。

Object.prototype.toString.call('foo');     // "[object String]"
Object.prototype.toString.call([1, 2]);    // "[object Array]"
Object.prototype.toString.call(3);         // "[object Number]"
Object.prototype.toString.call(true);      // "[object Boolean]"
Object.prototype.toString.call(undefined); // "[object Undefined]"
Object.prototype.toString.call(null);      // "[object Null]"
// ... and more

定義済みのtoStringTagシンボルを持つ型もあります。

Object.prototype.toString.call(new Map());       // "[object Map]"
Object.prototype.toString.call(function* () {}); // "[object GeneratorFunction]"
Object.prototype.toString.call(Promise.resolve()); // "[object Promise]"
// ... and more

クラスを作成したとき、JavaScriptはデフォルトで"Object"というタグをつけます。

class ValidatorClass {}

Object.prototype.toString.call(new ValidatorClass()); // "[object Object]"

toStringTagを使えば、あなたオリジナルのタグを設定することができます。

class ValidatorClass {
  get [Symbol.toStringTag]() {
    return 'Validator';
  }
}

Object.prototype.toString.call(new ValidatorClass()); // "[object Validator]"

仕様

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
Symbol.toStringTag の定義
標準 Initial definition.
ECMAScript Latest Draft (ECMA-262)
Symbol.toStringTag の定義
ドラフト  

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 49Edge 完全対応 15Firefox 完全対応 51IE 未対応 なしOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 51Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 6.0.0
完全対応 6.0.0
完全対応 4.0.0
無効
無効 From version 4.0.0: this feature is behind the --harmony runtime flag.

凡例

完全対応  
完全対応
未対応  
未対応
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: one-kelvin
最終更新者: one-kelvin,