Какова цель символа плюс перед переменной?

Это действительно звучит как простой вопрос, но мне не повезло. что делает +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 числом, функцией или строкой, которую можно преобразовать в число.