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)"
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
Смотрите также
© 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