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