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

Это действительно звучит как простой вопрос, но мне не повезло. что делает +d в

function addMonths(d, n, keepTime) { 
    if (+d) {

означает?

4b9b3361

Оператор + возвращает числовое представление объекта. Таким образом, в вашем конкретном случае он будет предикатировать if, если d является ненулевым числом.

Ссылка здесь. И, как указано в комментариях, здесь.

209
ответ дан 13 июля '11 в 20:26
источник

Это унарный оператор "+", который дает числовое выражение. Я думаю, что это будет так же, как d*1.

19
ответ дан 13 июля '11 в 20:29
источник

Как объяснено в других ответах, он преобразует переменную в число. Особенно полезно, когда d может быть числом или строкой функция что оценивается в число.

Пример (с использованием функции addMonths в вопросе):

addMonths(34,1,true);
addMonths("34",1,true);

тогда +d будет оценивать число во всех случаях. Таким образом, избегая необходимости проверять тип и использовать разные пути кода в зависимости от того, является ли d числом, функцией или строкой, которую можно преобразовать в число.

8
ответ дан 16 мая '14 в 17:25
источник