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 .




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.


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.


+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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.