2013-06-07 15 views
32

Znalazłem następujący fragment kodu źródłowego jQuery, w definicji eq funkcja:Dlaczego wiodące `+` w `j = + i + (i <0? Len: 0)` (pobrane z kodu źródłowego jQuery)

j = +i + (i < 0 ? len : 0) 

Byłem zaskoczony przez +i. Raczej bym się spodziewał:

j = i + (i < 0 ? len : 0) 

Jaka jest różnica? Jaką użyteczność tego wiodącego +?

+0

Aby przesłać na numer. – NINCOMPOOP

+0

Och ... Używałem '0 + x' ... Wygląda na to, że' + x' jest wystarczający :) – anishsane

+0

możliwy duplikat [What does = + \ _ mean in JavaScript] (http: // stackoverflow. com/questions/15129137/what-does-mean-in-javascript) i prawdopodobnie także [Jakie jest znaczące użycie operatorów Unary Plus i Minus?] (http://stackoverflow.com/questions/5450076/whats-the-significant -use-of-unary-plus-and-minus-operatory) – apsillers

Odpowiedz

32

Plus przed zmiennej odlewy do liczby.

Na przykład:

var x = "12"; 
console.log(x + 3); //logs 123; 
console.log(+x + 3) //logs 15; 
+10

Numer powodu NaN nie może używać dynamicznie wpisywanego języka. – MikeFHay

+2

Istnieją programy pro i con. Po prostu poznaj różnice i nie będzie 0 powodów. –

43

+i coerces na numer. Na przykład, próby "1" + 1 porównaniu +"1" + 1 (pierwsza jest "11" a drugi jest 2)

+3

Solidne, łatwe do zrozumienia objaśnienie. +1 – tymeJV

Powiązane problemy