Jaki jest cel znaku plus przed zmienną?


Odpowiedzi:


312

+Operator przywraca Liczbowa obiektu. Tak więc w twoim konkretnym przypadku wydaje się, że przewidujesz, czy djest liczbą niezerową, czy nie .

Odnośnik tutaj . I, jak zauważył w komentarzach, tutaj .




Zastanawiam się tylko, która jest bardziej wydajna, parsuje ciąg znaków na liczbę całkowitą za pomocą funkcji parseInt lub operatora plus?
acarlstein

1
Czym się różni .parseInt()?
Daniel W.

1
@acarlstein z linku MDN w odpowiedzi: „Chociaż jednoargumentowe negowanie (-) może również konwertować liczby nieparzyste , jednoargumentowy plus jest najszybszym i preferowanym sposobem konwersji czegoś na liczbę , ponieważ nie wykonuje żadnych innych operacji na liczbie . ” (tylko dla „oficjalnej” odpowiedzi)
AN

22

Jest to jednoargumentowy operator „+”, który daje wyrażenie liczbowe. d*1Myślę, że byłoby to tak samo jak .


12

Jak wyjaśniono w innych odpowiedziach, konwertuje zmienną na liczbę. Szczególnie przydatne, gdy d może być liczbą lub łańcuchem funkcjonować która ocenia na liczbę.

Przykład (użycie addMonthsfunkcji w pytaniu):

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

następnie +doceni we wszystkich przypadkach. W ten sposób unikamy konieczności sprawdzania typu i wybierania różnych ścieżek kodu w zależności od tego, czy djest liczbą, funkcją czy łańcuchem, który można przekonwertować na liczbę.


+dnie oceni na liczbę z pierwszym przykładem wywołania addMonths
Gus Crawford

prawda, nie wiem co zrobiłem, kiedy to napisałem. +function(){...}wygeneruje funkcję NaNnie oceniającą
RubenLaguna

4
Czy możesz edytować swoją odpowiedź, aby usunąć wariata? To dość mylące.
Buh Buh,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.