Le symbole connu Symbol.toStringTag
est une propriété qui est une chaîne de caractères qui est utilisée pour la description textuelle par défaut d'un objet. Ce symbole est utilisé par le moteur JavaScript via la méthode Object.prototype.toString()
.
Attributs de Symbol.toStringTag |
|
---|---|
Écrivable | Non |
Énumérable | Non |
Configurable | Non |
Description
La plupart des types JavaScript ont des étiquettes par défaut :
Object.prototype.toString.call('toto'); // "[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]" // etc.
D'autres ont le symbole natif toStringTag
défini :
Object.prototype.toString.call(new Map()); // "[object Map]" Object.prototype.toString.call(function* () {}); // "[object GeneratorFunction]" Object.prototype.toString.call(Promise.resolve()); // "[object Promise]" // etc.
Lorsqu'on crée des classes personnalisées, JavaScript utilise l'étiquette "Object" par défaut :
class ValidatorClass {} Object.prototype.toString.call(new ValidatorClass()); // "[object Object]"
Si on utilise le symbole toStringTag
on peut définir une étiquette personnalisée :
class ValidatorClass { get [Symbol.toStringTag]() { return "Validator"; } } Object.prototype.toString.call(new ValidatorClass()); // "[object Validator]"
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Symbol.toStringTag' dans cette spécification. |
Standard | Définition initiale. |
ECMAScript 2017 Draft (ECMA-262) La définition de 'Symbol.toStringTag' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | 49 | 51 (51) | Pas de support | ? | ? |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | ? | ? | 51.0 (51) | Pas de support | ? | ? |
Voir aussi
Étiquettes et contributeurs liés au document
Étiquettes :
Contributeurs à cette page :
SphinxKnight
Dernière mise à jour par :
SphinxKnight,