#javascript #momentjs
#javascript #momentjs
Вопрос:
У меня есть объект date в moment
const myDate = moment.utc(new Date()).startOf('day');
Подход # 1
console.log(myDate.valueOf());
против подхода # 2
console.log( myDate());
Оба они делают одно и то же, я хочу знать, как это myDate()
работает, и я нигде не мог найти документацию для этого.
Ответ №1:
Это не momentjs, это то, как работает унарный
оператор в JavaScript.
Унарный оператор plus предшествует своему операнду и вычисляет его операнд, но пытается преобразовать его в число, если оно еще не выполнено. Хотя унарное отрицание (-) также может преобразовывать не-числа, унарный плюс является самым быстрым и предпочтительным способом преобразования чего-либо в число, поскольку он не выполняет никаких других операций над числом. Он может преобразовывать строковые представления целых и плавающих чисел, а также нестроковые значения true, false и null. Поддерживаются целые числа как в десятичном, так и в шестнадцатеричном (с префиксом «0x») форматах. Поддерживаются отрицательные числа (хотя и не для hex). Если он не может проанализировать определенное значение, он будет вычислен до NaN.
Ответ №2:
Я нигде не смог найти документацию для этого.
Это в спецификации JavaScript. 🙂
Унарный
оператор преобразует свой операнд в число с помощью абстрактной ToNumber
операции, которая (для объектов) вызывает valueOf
(затем, если необходимо, потому что это возвращает объект [!], вызывает toString
) и преобразует результирующий примитив в число, если оно еще не является единицей.
Поскольку объект moment поддерживает valueOf
и возвращает число, myDate
и myDate.valueOf()
делает то же самое.
Комментарии:
1. Спасибо, на самом деле я не знал точного термина того, что мне нужно было искать. Теперь я знаю, большое спасибо, сэр.