Symbol.toStringTag

Этот перевод не завершён. Пожалуйста, помогите перевести эту статью с английского

Известный символ 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 (ECMA-262)
Определение 'Symbol.toStringTag' в этой спецификации.
Живой стандарт

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
toStringTagChrome Полная поддержка 49Edge Полная поддержка 15Firefox Полная поддержка 51IE Нет поддержки НетOpera Полная поддержка 36Safari Полная поддержка 10WebView Android Полная поддержка 49Chrome Android Полная поддержка 49Firefox Android Полная поддержка 51Opera Android Полная поддержка 36Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 6.0.0
Полная поддержка 6.0.0
Полная поддержка 4.0.0
Отключено
Отключено From version 4.0.0: this feature is behind the --harmony runtime flag.
toStringTag available on all DOM prototype objectsChrome Полная поддержка 50Edge Полная поддержка 79Firefox Полная поддержка 78IE Нет поддержки НетOpera Полная поддержка 37Safari Полная поддержка 14WebView Android Полная поддержка 50Chrome Android Полная поддержка 50Firefox Android Нет поддержки НетOpera Android Полная поддержка 37Safari iOS Полная поддержка 14Samsung Internet Android Полная поддержка 5.0nodejs Нет поддержки Нет

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Пользователь должен сам включить эту возможность.
Пользователь должен сам включить эту возможность.

Смотрите также