2013-06-07 14 views
32

Aşağıdaki snippet'i jQuery kaynak kodunda eq tanımında buldum fonksiyonu:Niçin `+` in `j = + i + (i <0? Len: 0)` (jQuery kaynak kodundan alınmıştır)

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

Ben +i şaşırdı. Aksine, ben umuyordum:

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

fark nedir? Bu lider + ne işe yarar? Sayıyı zorlar.

+0

Bir numaraya yayınlamak için. – NINCOMPOOP

+0

Oh ... Eskiden 0 + x 'yi kullandım ... Görünüşe göre + x' yeterlidir – anishsane

+0

olası yinelemesinin [What does = JavaScript \' te + \ _) (http: // stackoverflow. com/questions/15129137/what-does-mean-in-javascript) ve muhtemelen [Unary Plus ve Eksi operatörlerinin önemli kullanımı nedir?] (http://stackoverflow.com/questions/5450076/whats-the- önemsiz -use-of-unary-plus-ve-eksi-operatörleri) – apsillers

cevap

32

+"1" + 1 karşı "1" + 1 deneyin. Örneğin

:

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

Nedeni sayısı NaN dinamik olarak yazılan bir dil kullanmıyor – MikeFHay

+2

Yanlısı ve con's var. Sadece farklılıkları öğren ve yapmamam için 0 neden olacak. –

43

+i numarayı zorlar. Bir örnek olarak, değişken önüne artı bir sayıya yayınları (ikinci 2 ise eski "11" olan)

+3

Anlaşılması kolay, anlaşılması kolay. +1 – tymeJV

İlgili konular