Number()
和 parseInt()
是 JavaScript 中用於將字串轉換為數字的兩個不同函式,它們在處理字串時有一些不同之處。
Number()
#
Number()
函式將整個字串轉換為數字。- 如果字串包含非數字字元(除了開頭的空格和正負號),則返回
NaN
。 - 如果字串可以被完整地解析為一個數字,則返回該數字。
parseInt()
#
parseInt()
函式解析字串的整數部分,直到遇到第一個非數字字元為止。- 可以指定一個可選的基數(即進制)來解析字串。
- 如果字串以非數字字元開頭,
parseInt()
返回NaN
。
示例解釋#
示例 1#
let a = "1hola1";
console.log(Number(a)); // 輸出: NaN
console.log(parseInt(a)); // 輸出: 1
解釋:
Number("1hola1")
返回NaN
,因為整個字串"1hola1"
無法轉換為一個有效的數字。parseInt("1hola1")
返回1
,因為它從字串開頭解析,直到遇到非數字字元h
。
示例 2#
let a = "1";
console.log(Number(a)); // 輸出: 1
console.log(parseInt(a)); // 輸出: 1
解釋:
Number("1")
和parseInt("1")
都返回1
,因為字串"1"
是一個有效的數字,沒有非數字字元干擾解析。
總結#
- 使用
Number()
可以將整個字串轉換為一個數字,如果字串包含任何非數字字元,則返回NaN
。 - 使用
parseInt()
可以從字串的開頭解析出整數部分,直到遇到非數字字元為止。
其他示例#
console.log(Number("123.45")); // 輸出: 123.45
console.log(parseInt("123.45")); // 輸出: 123
console.log(Number(" 123 ")); // 輸出: 123
console.log(parseInt(" 123 ")); // 輸出: 123
console.log(Number("123abc")); // 輸出: NaN
console.log(parseInt("123abc")); // 輸出: 123
console.log(Number("abc123")); // 輸出: NaN
console.log(parseInt("abc123")); // 輸出: NaN
這些示例展示了 Number()
和 parseInt()
在處理不同字串時的行為差異。
又學習到了新的知識。