在 JavaScript 中,將字串數字轉換為數字時,有幾種常見的方法,但每種方法都有其適用場景和潛在的風險。為了確保轉換的安全性和準確性,建議使用以下方法:
1. Number
建構函式
Number
建構函式是最直接和安全的方法之一,它可以處理各種數字格式,包括整數、浮點數和科學計數法。
const str = "123.45";
const num = Number(str);
console.log(num); // 123.45
2. parseFloat
和 parseInt
parseFloat
和 parseInt
用於解析浮點數和整數,但需要注意它們會忽略字串中非數字部分,這可能會導致意外的結果。
const str1 = "123.45";
const num1 = parseFloat11);
console.log(num1); // 123.45
const str2 = "123.45abc";
const num2 = parseFloat(str2);
console.log(num2); // 123.45
const str3 = "123abc";
const num3 = parseInt(str3);
console.log(num3); // 123
3. +
運算子
+
運算子可以將字串轉換為數字,但需要注意它會將空字串轉換為 0
,並且對非數字字串會返回 NaN
。
const str1 = "123.45";
const num1 = +str1;
console.log(num1); // 123.45
const str2 = "";
const num2 = +str2;
console.log(num2); // 0
const str3 = "abc";
const num3 = +str3;
console.log(num3); // NaN
4. Number.parseInt
和 Number.parseFloat
Number.parseInt
和 Number.parseFloat
是 parseInt
和 parseFloat
的更安全版本,因為它們是靜態方法,不會被覆蓋。
const str1 = "123.45";
const num1 = Number.parseFloat(str1);
console.log(num1); // 123.45
const str2 = "123abc";
const num2 = Number.parseInt(str2);
console.log(num2); // 123
5. Number
建構函式與 isNaN
檢查
為了確保轉換的安全性,可以結合 Number
建構函式和 isNaN
檢查來處理無效的輸入。
const str1 = "123.45";
const num1 = Number(str1);
if (!isNaN(num1)) {
console.log(num1); // 123.45
} else {
console.log("Invalid number");
}
const str2 = "abc";
const num2 = Number(str2);
if (!isNaN(num2)) {
console.log(num2);
} else {
console.log("Invalid number"); // Invalid number
}
總結
- 推薦使用
Number
建構函式,因為它是最直接和安全的方法,可以處理各種數字格式。 - 如果需要解析浮點數或整數,可以使用
Number.parseFloat
和Number.parseInt
。 - 使用
+
運算子時需要注意空字串和非數字字串的處理。 - 結合
isNaN
檢查可以確保輸入的有效性。