This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Symbol.toStringTag
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since апрель 2017 г..
Известный символSymbol.toStringTag - это строковое значение свойства, которое используется при создании строки описания объекта по умолчанию. Доступ к нему осуществляется черезObject.prototype.toString() метод.
In this article
Интерактивный пример
class ValidatorClass { get [Symbol.toStringTag]() { return "Validator"; }}console.log(Object.prototype.toString.call(new ValidatorClass()));// Expected output: "[object Validator]"Атрибуты свойстваSymbol.toStringTag | |
|---|---|
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |
Описание
Многие Javascript типы имеют теги по умолчанию:
js
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:
js
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":
js
class ValidatorClass {}Object.prototype.toString.call(new ValidatorClass()); // "[object Object]"С помощьюtoStringTag можно установить свой собственный тег:
js
class ValidatorClass { get [Symbol.toStringTag]() { return "Validator"; }}Object.prototype.toString.call(new ValidatorClass()); // "[object Validator]"Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-symbol.tostringtag> |