2015-12-22 31 views
0

從這樣的字符串解析數字是否安全?Javascript:解析乘以1.0的數字

rate *= 1.0; 
sTraf.setDelay((rate+1)*1000); 

rate是一個只包含1個數字的字符串。

+0

你認爲怎麼回事? –

+0

爲什麼你不使用「parseFloat」? – ssougnez

+0

您可以使用'+ rate'來獲取字符串中的數字 – Hacketo

回答

2

我不會推薦它。片段不清楚:真正的意圖隱藏在乘法隱含的副作用(JavaScript嘗試將非數值變量轉換爲其數值「等效」),而不是從代碼清晰可見。

如果你使用parseFloat,每個人都可以清楚地看到你的代碼你正在做什麼:你有一個字符串應該可以被解釋爲一個浮點數,並且你想要對其進行轉換。此外,作爲專門爲該工作撰寫的函數,它爲邊緣案例提供了所有必要的「失敗者」。

如果你真的想要/不得不使用* 1.0出於某種奇怪的原因,至少應該在代碼中註釋代碼的目的(即將字符串轉換爲浮點數,而不是乘以1) 。

1

一般不會,如果rate無法解析,它將被設置爲NaN,這可能會導致錯誤,具體取決於您使用它做什麼。

如果您可以確定rate是一個數字,您可以使用rate = +rate來獲得一個數字。

+0

在此示例中,rate是1到10之間的整數。 –