Qual è lo scopo di un simbolo più prima di una variabile?


Risposte:


312

L' +operatore restituisce la rappresentazione numerica dell'oggetto. Quindi, nel tuo caso particolare, sembrerebbe prevedere se o meno dun numero diverso da zero.

Riferimento qui . E, come sottolineato nei commenti, qui .




Mi chiedo solo quale sia più efficiente, analizzare una stringa in un numero intero utilizzando la funzione parseInt o utilizzando l'operatore più?
Acarlstein,

1
Come è diverso da .parseInt()?
Daniel W.

1
@acarlstein dal link MDN nella risposta: "Anche se la negazione unaria (-) può anche convertire non numeri, unary plus è il modo più rapido e preferito di convertire qualcosa in un numero , perché non esegue altre operazioni sul numero ". (solo per una risposta "ufficiale")
AN

22

È un operatore "+" unario che produce un'espressione numerica. Sarebbe lo stesso d*1, credo.


12

Come spiegato in altre risposte, converte la variabile in un numero. Utile specialmente quando d può essere un numero o una stringa funzione che valuta un numero.

Esempio (utilizzando la addMonthsfunzione nella domanda):

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

quindi +dvaluterà un numero in tutti i casi. Evitando così la necessità di verificare il tipo e prendere percorsi di codice diversi a seconda che dsi tratti di un numero, una funzione o una stringa che può essere convertita in un numero.


+dnon valuterà un numero con il primo esempio di invocazione di addMonths
Gus Crawford,

vero, non so cosa ho fatto quando ho scritto questo. +function(){...}produrrà un NaNnon valutare la funzione
RubenLaguna,

4
Potresti modificare la tua risposta per rimuovere il matto? È abbastanza confuso.
Buh Buh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.