從這樣的字符串解析數字是否安全?Javascript:解析乘以1.0的數字
rate *= 1.0;
sTraf.setDelay((rate+1)*1000);
rate
是一個只包含1個數字的字符串。
從這樣的字符串解析數字是否安全?Javascript:解析乘以1.0的數字
rate *= 1.0;
sTraf.setDelay((rate+1)*1000);
rate
是一個只包含1個數字的字符串。
我不會推薦它。片段不清楚:真正的意圖隱藏在乘法隱含的副作用(JavaScript嘗試將非數值變量轉換爲其數值「等效」),而不是從代碼清晰可見。
如果你使用parseFloat
,每個人都可以清楚地看到你的代碼你正在做什麼:你有一個字符串應該可以被解釋爲一個浮點數,並且你想要對其進行轉換。此外,作爲專門爲該工作撰寫的函數,它爲邊緣案例提供了所有必要的「失敗者」。
如果你真的想要/不得不使用* 1.0
出於某種奇怪的原因,至少應該在代碼中註釋代碼的目的(即將字符串轉換爲浮點數,而不是乘以1) 。
一般不會,如果rate
無法解析,它將被設置爲NaN
,這可能會導致錯誤,具體取決於您使用它做什麼。
如果您可以確定rate
是一個數字,您可以使用rate = +rate
來獲得一個數字。
在此示例中,rate是1到10之間的整數。 –
你認爲怎麼回事? –
爲什麼你不使用「parseFloat」? – ssougnez
您可以使用'+ rate'來獲取字符串中的數字 – Hacketo