Qual é a finalidade de um símbolo de adição antes de uma variável?

Respostas:

312

O +operador retorna a representação numérica do objeto. Portanto, no seu caso em particular, parece indicar se dé um número diferente de zero.

Referência aqui . E, como apontado nos comentários, aqui .

Paul Sonier
fonte
Eu só me pergunto o que é mais eficiente, analisar uma string em um número inteiro usando a função parseInt ou usando o operador plus?
Acarlstein
1
Qual é a diferença .parseInt()?
Daniel W.
1
@acarlstein do link MDN na resposta: "Embora a negação unária (-) também possa converter não-números, o unary plus é a maneira mais rápida e preferida de converter algo em um número , porque não realiza nenhuma outra operação no número . " (apenas para uma resposta "oficial")
AN
22

É um operador "+" unário que gera uma expressão numérica. Seria o mesmo que d*1, acredito.

ingênuos
fonte
12

Conforme explicado em outras respostas, ele converte a variável em um número. Especialmente útil quando d pode ser um número ou uma sequência função que avalia para um número.

Exemplo (usando a addMonthsfunção na pergunta):

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

então o +dserá avaliado para um número em todos os casos. Evitando, assim, a necessidade de verificar o tipo e seguir caminhos de código diferentes, dependendo se dé um número, uma função ou uma sequência que pode ser convertida em um número.

RubenLaguna
fonte
+dnão irá avaliar para um número com o primeiro exemplo invocação de AddMonths
Gus Crawford
verdade, não sei o que fiz quando escrevi isso. +function(){...}irá produzir um NaNnão avaliar a função
RubenLaguna
4
Você poderia editar sua resposta para remover os loucos? É bem confuso.
Buh Buh