JavaScript是一門著名的編程語言,可以用于開發網站和Web應用程序。在編寫JavaScript代碼時,你可能會遇到需要把字符串轉成數值的需求。這是因為JavaScript中的數值和字符串是不同類型的數據,不能直接進行運算,而需要先將字符串轉成數值才能進行數學計算或比較大小。
最常見的字符串轉數值的方法是使用parseInt()和parseFloat()函數。這兩個函數的作用是將輸入的字符串轉成整數或浮點數,如下所示:
var str = "123"; var num = parseInt(str); console.log(num); // 123 var str2 = "123.45"; var num2 = parseFloat(str2); console.log(num2); // 123.45
需要注意的是,如果輸入的字符串無法轉成數值,那么這兩個函數會返回NaN(Not a Number):
var str = "abc"; var num = parseInt(str); console.log(num); // NaN
不過,如果字符串的開頭是數字且后面包含其他字符,那么parseInt()函數會返回開頭的數字:
var str = "123abc"; var num = parseInt(str); console.log(num); // 123
此外,可以在parseInt()和parseFloat()函數中設置第二個參數來指定數字的進制(即基數)。例如,以下代碼中的parseInt()函數將把字符串"0x10"轉成16進制的整數16:
var str = "0x10"; var num = parseInt(str, 16); console.log(num); // 16
除了使用parseInt()和parseFloat()函數,另一種將字符串轉成數值的方法是使用Number()函數。Number()函數將字符串轉成數值的方式與parseInt()和parseFloat()略有不同,它可以將true和false分別轉成1和0:
var str = "123"; var num = Number(str); console.log(num); // 123 var str2 = "true"; var num2 = Number(str2); console.log(num2); // 1 var str3 = "false"; var num3 = Number(str3); console.log(num3); // 0
需要注意的是,如果輸入的字符串無法轉成數值,那么Number()函數會返回NaN(Not a Number):
var str = "abc"; var num = Number(str); console.log(num); // NaN
最后,除了以上三種方法外,ES6還引入了一個新的方法可以將字符串轉成數值,即使用+運算符。這種方法簡潔明了,但它也有一些限制,例如如果字符串中包含除數字和小數點外的字符,那么+運算符會返回NaN,如下所示:
var str = "123"; var num = +str; console.log(num); // 123 var str2 = "123.45"; var num2 = +str2; console.log(num2); // 123.45 var str3 = "abc"; var num3 = +str3; console.log(num3); // NaN
綜上所述,JavaScript提供了多種方法將字符串轉成數值,開發者可以根據具體需求選擇最適合的方法。但需要注意的是,無論使用哪種方法,都需要對字符串的合法性進行檢查,以避免出現意外的結果。