2015-05-25 60 views
5

我在比較兩個分支,代碼有分歧,而+ operator,在我看來它沒有任何區別,因爲它是推動。
有什麼區別嗎?使用「+」運算符推送有什麼區別嗎?

之前

if (numberPattern.test(val)) { 
      var getNumbers = val.match(numberPattern); 
      for (i = 0; i < getNumbers.length; i++) { 
       valores.push(getNumbers[i]) 
      } 
     } 

if (numberPattern.test(val)) { 
      var getNumbers = val.match(numberPattern); 
      for (i = 0; i < getNumbers.length; i++) { 
       valores.push(+getNumbers[i]) 
      } 
     } 
+0

如果它不會導致錯誤我不認爲這是一個問題 – SharpEdge

+0

問題是什麼是這個運算符的用法?我認爲不必要的 –

+0

可能重複[什麼是在Javascript中使用一元+?(http://stackoverflow.com/questions/9081880/what-is-unary-used-for-in-javascript) – Hacketo

回答

7

據其轉換爲Number,在另一種情況是把它當作是字符串。

+0

你怎麼知道'getNumber [I]'正在返回一個字符串? –

+1

注意,這種技術從'parseFloat'不同之處在於它會轉換布爾值和空字符串,以及(+其他邊緣的情況下)我不建議不過是因爲可讀性。 –

+1

@AmitJoki由於正則表達式處理。 –

2

+實際上將getNumbers[i]更改爲number類型。 +(一元運算符)實際上用於將其轉換爲number

嘗試運行這段代碼:

var s = "1"; //String 
var s1 = +s; //String changed to a number now 
console.log(typeof s1); 

你會看到的s1的類型將是number

相關問題