Number()
と parseInt()
は、JavaScript で文字列を数値に変換するための 2 つの異なる関数です。文字列を処理する際にいくつかの違いがあります。
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()
が異なる文字列を処理する際の動作の違いを示しています。
新しい知識を学びました。