Date.prototype[@@toPrimitive]

O método [@@toPrimitive]() converte o objeto Date para um valor primitivo.

Sintaxe

Date()[Symbol.toPrimitive](hint);

Valor de retorno

O valor primitivo do objeto Date. Dependendo do argumento, o método pode retornar uma cadeia de caracteres (string) ou um número.

Descrição

O método [@@toPrimitive]() do objeto Date retorna um valor primitivo, que pode ser tanto um tipo numérico quanto uma string.

Se hint é "string" ou "default", [@@toPrimitive]() tenta chamar o método toString. Se a propriedade toString não existe, ele tenta chamar o método valueOf e se o valueOf não existir, [@@toPrimitive]() joga um TypeError.

Se hint é "number", [@@toPrimitive]() tenta primeiro chamar valueOf, e se ele falha, chama toString.

O JavaScript chama o método [@@toPrimitive]() para converter um objeto para um valor primitivo. Você raramente precisa invocar o método [@@toPrimitive]() em si; JavaScript automaticamente o invoca quando encontra um objeto onde um valor primitivo é esperado.

Exemplos

Retornando primitivos de data

const testDate = new Date(1590757517834);
// "Date Fri May 29 2020 14:05:17 GMT+0100 (British Summer Time)"

testDate[Symbol.toPrimitive]('string');
// Returns "Date Fri May 29 2020 14:05:17 GMT+0100 (British Summer Time)"

testDate[Symbol.toPrimitive]('number');
// Returns "1590757517834"

testDate[Symbol.toPrimitive]('default');
// Returns "Date Fri May 29 2020 14:05:17 GMT+0100 (British Summer Time)"

Especificações

Especificação
ECMAScript (ECMA-262)
The definition of 'Date.prototype.@@toPrimitive' in that specification.

Compatibilidade de navegador

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
@@toPrimitiveChrome Full support 47Edge Full support 15Firefox Full support 44IE No support NoOpera Full support 34Safari Full support 10WebView Android Full support 47Chrome Android Full support 47Firefox Android Full support 44Opera Android Full support 34Safari iOS Full support 10Samsung Internet Android Full support 5.0nodejs Full support 6.0.0

Legend

Full support  
Full support
No support  
No support

Veja também