Ответ 1
Оператор +
возвращает числовое представление объекта. Таким образом, в вашем конкретном случае, это, кажется, предсказывает, является ли d
ненулевым числом или нет.
Это действительно звучит как простой вопрос, но мне не повезло. что делает +d
в
function addMonths(d, n, keepTime) {
if (+d) {
означает?
Оператор +
возвращает числовое представление объекта. Таким образом, в вашем конкретном случае, это, кажется, предсказывает, является ли d
ненулевым числом или нет.
Это унарный оператор "+", который дает числовое выражение. Я думаю, что это будет так же, как d*1
.
Как объяснено в других ответах, он преобразует переменную в число. Особенно полезно, когда d может быть числом или строкой функция что оценивается в число.
Пример (с использованием функции addMonths
в вопросе):
addMonths(34,1,true);
addMonths("34",1,true);
тогда +d
будет оценивать число во всех случаях. Таким образом, избегая необходимости проверять тип и использовать разные пути кода в зависимости от того, является ли d
числом, функцией или строкой, которую можно преобразовать в число.