2013-06-07 14 views
32

Ho trovato il seguente snippet nel codice sorgente jQuery, nella definizione dello eq funzione:Perché il principale `+` in `j = + i + (i <0? Len: 0)` (tratto dal codice sorgente jQuery)

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

Sono rimasto sorpreso dal +i. Piuttosto, mi sarei aspettato:

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

Qual è la differenza? Quale è l'utilità di tale leader +?

+0

Per eseguire il cast su un numero. – NINCOMPOOP

+0

Oh ... ho usato '0 + x' ... Sembra che' + x' sia sufficiente :) – anishsane

+0

possibile duplicato di [Cosa significa = + \ _ in JavaScript] (http: // stackoverflow. it/questions/15129137/what-does-mean-in-javascript) e possibilmente anche [Qual è l'uso significativo degli operatori Unary Plus e Minus?] (http://stackoverflow.com/questions/5450076/whats-the-significant -uso-di-unario-più-e-minus-operatori) – apsillers

risposta

32

Il più davanti variabile getta in un numero.

Ad esempio:

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

Numero motivo NaN per non utilizzare un linguaggio tipizzato dinamicamente – MikeFHay

+2

Ci sono pro e contro. Basta imparare le differenze e ci saranno 0 ragioni per non farlo. –

43

+i costruisce al numero. Come esempio, provate "1" + 1 contro +"1" + 1 (la prima è "11" mentre il secondo è 2)

+3

Spiegazione solida e facile da capire. +1 – tymeJV

Problemi correlati