Spec-Zone.ru › JavaScript

Date.prototype[Symbol.toPrimitive]()

Базовая доступность Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Метод [Symbol.toPrimitive]() экземпляров Date возвращает примитивное значение, представляющее эту дату. Это может быть либо строка, либо число, в зависимости от предоставленной подсказки (hint).

Попробовать

// Depending on timezone, your results will vary
const date = new Date("20 December 2019 14:48");

console.log(date[Symbol.toPrimitive]("string"));
// Expected output: "Fri Dec 20 2019 14:48:00 GMT+0530 (India Standard Time)"

console.log(date[Symbol.toPrimitive]("number"));
// Expected output: 1576833480000

Синтаксис

date[Symbol.toPrimitive](hint)

Параметры

hint
Строка, представляющая тип примитивного значения для возврата. Допустимы следующие значения:
  • "string" или "default": Метод должен вернуть строку.
  • "number": Метод должен вернуть число.

Возвращаемое значение

Если hint — это "string" или "default", этот метод возвращает строку путем приведения значения this к строке (сначала пробуется toString(), затем пробуется valueOf()).

Если hint — это "number", этот метод возвращает число путем приведения значения this к числу (сначала пробуется valueOf(), затем пробуется toString()).

Исключения

TypeError
Генерируется, если аргумент hint не является одним из трех допустимых значений.

Описание

Метод [Symbol.toPrimitive]() является частью протокола приведения типов. JavaScript всегда вызывает метод [Symbol.toPrimitive]() в первую очередь для преобразования объекта в примитивное значение. Вам редко требуется вызывать метод [Symbol.toPrimitive]() самостоятельно; JavaScript автоматически вызывает его при встрече с объектом, где ожидается примитивное значение.

Метод [Symbol.toPrimitive]() объекта Date возвращает примитивное значение, либо вызывая this.valueOf() и возвращая число, либо вызывая this.toString() и возвращая строку. Он существует для того, чтобы переопределить стандартный процесс примитивного приведения (primitive coercion) для возврата строки вместо числа, поскольку примитивное приведение по умолчанию вызывает valueOf() до toString(). С помощью пользовательского [Symbol.toPrimitive](), new Date(0) + 1 возвращает "Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)1" (строку) вместо 1 (числа).

Примеры

Использование [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)"

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-date.prototype-%symbol.toprimitive%

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

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
@@toPrimitive
47
15
44
34
10
47
44
34
10
5.0
47
10
1.0.0
1.0
6.0.0

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

  • Symbol.toPrimitive

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Symbol.toPrimitive

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API