Date : méthode [Symbol.toPrimitive]()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis avril 2017.
La méthode [Symbol.toPrimitive]() des instances de Date retourne une valeur primitive représentant cette date. Cette valeur peut être une chaîne de caractères ou un nombre, selon l'indication fournie.
Exemple interactif
// Selon le fuseau horaire, vos résultats peuvent varier
const date = new Date("20 December 2019 14:48");
console.log(date[Symbol.toPrimitive]("string"));
// Résultat attendu : "Fri Dec 20 2019 14:48:00 GMT+0530 (India Standard Time)"
console.log(date[Symbol.toPrimitive]("number"));
// Résultat attendu : 1576833480000
Syntaxe
date[Symbol.toPrimitive](hint)
Paramètres
hint-
Une chaîne de caractères représentant le type de valeur primitive à retourner. Les valeurs suivantes sont valides :
"string"ou"default": la méthode doit retourner une chaîne de caractères."number": la méthode doit retourner un nombre.
Valeur de retour
Si hint vaut "string" ou "default", cette méthode retourne une chaîne de caractères en contraignant la valeur de this en une chaîne de caractères (en essayant d'abord toString(), puis valueOf()).
Si hint vaut "number", cette méthode retourne un nombre en contraignant la valeur de this en un nombre (en essayant d'abord valueOf(), puis toString()).
Exceptions
TypeError-
Levée si l'argument
hintn'est pas l'une des trois valeurs valides.
Description
La méthode [Symbol.toPrimitive]() fait partie du protocole de contrainte de type. JavaScript appelle toujours la méthode [Symbol.toPrimitive]() en priorité pour convertir un objet en une valeur primitive. Il est rarement nécessaire d'invoquer la méthode [Symbol.toPrimitive]() soi-même ; JavaScript l'appelle automatiquement lorsqu'il rencontre un objet là où une valeur primitive est attendue.
La méthode [Symbol.toPrimitive]() de l'objet Date retourne une valeur primitive en invoquant soit this.valueOf() et retourne un nombre, soit this.toString() et retourne une chaîne de caractères. Elle existe pour remplacer le processus par défaut de contrainte de valeur primitive afin de retourner une chaîne de caractères au lieu d'un nombre, car la contrainte primitive, par défaut, appelle valueOf() avant toString(). Avec le comportement personnalisé de [Symbol.toPrimitive](), new Date(0) + 1 retourne "Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)1" (une chaîne de caractères) au lieu de 1 (un nombre).
Exemples
>Utiliser la méthode [Symbol.toPrimitive]()
const d = new Date(0); // 1970-01-01T00:00:00.000Z
d[Symbol.toPrimitive]("string"); // "Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)"
d[Symbol.toPrimitive]("number"); // 0
d[Symbol.toPrimitive]("default"); // "Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)"
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-date.prototype-%symbol.toprimitive%> |
Compatibilité des navigateurs
Voir aussi
- Le symbole
Symbol.toPrimitive