2009-03-04 11 views

Odpowiedz

33

Jednoargumentowy plus zapewnia kompletność w porównaniu ze znanym unarnym minusem (-x). Jednak ma to efekt uboczny, powoływać tutaj, odlewania myInput.value na wiele, jeśli jest to coś innego, takich jak ciąg znaków:

alert(1+'2'); // 12 
alert(1+(+'2')); // 3 
+0

Dzięki, nie znałem tego zapisu. Zakładam, że jest to w zasadzie stenografia dla parseInt()? –

+2

Oni nie są tacy sami, Luke, zobacz tutaj, aby uzyskać więcej informacji: http://alexle.net/archives/290 –

+0

Oczywiście, będzie bliżej "parseFloat". + -casting obsługuje pełne liczby literowe liczb zmiennoprzecinkowych, w tym takie dziwactwa, jak + "Infinity". – bobince

8

To się nazywa „jednoargumentowy operator +”, może być używany jako szybki sposób na wymuszenie przekonwertowania zmiennej na liczbę, aby mogła być używana w operacji matematycznej.

2

Znak + oznacza typografię do liczby, jak powiedzieli inni. Jest tam potrzebny, ponieważ dane wejściowe formularza są zawsze wartościami łańcuchowymi, a dodanie łańcucha do innej zmiennej łączy je razem w nowy ciąg, nawet jeśli ciąg wygląda jak liczba.

1

Operator jednoargumentowy plus jest, mówiąc arytmetycznie, odlotem. Ale podobnie jak wszystkie inne czysto arytmetyczne operatory, przekształci to jego argument w typ liczby JavaScript i dlatego może być używany jako skrót dla jawnej obsady.

Jawne rzutowanie tekstu w języku JavaScript odbywa się przez wywołanie odpowiednich funkcji konstruktora bez użycia za pomocą operatora new.

Przykładowo

Number(foo) 

przekształci foo na pierwotną numeru typu, natomiast new Number(foo) się dodatkowo do utworzenia obiektu opakowującym prymitywne i odpowiada zatem

Object(Number(foo)) 

podobny do tego użycie + jest użycie !! do konwersji na typ boolowski.