📑

JavaScriptのNumber()とparseInt()の違い

2020/10/10に公開

今回は、JavaScriptで文字列の数値を数値に変換する際に使える、Number()とparseInt()の違いについて書きたいと思います。
タイトルには書きませんでしたが、parseFloat()も加えて紹介します。

const numbers = '1234'

console.log(Number(numbers)) // 1234
console.log(parseInt(numbers)) // 1234
console.log(parseFloat(numbers)) // 1234

上記の場合では3つとも同じ値が返ってきています。
しかし、numbersの値によっては、異なる値が返ってきます。

//例1. 値が小数点以下の数字を含むとき

const numbers = '123.4567'

console.log(Number(numbers)) // 123.4567
console.log(parseInt(numbers)) // 123
console.log(parseFloat(numbers)) // 123.4567
//例2. 値が空配列だった場合

const numbers = ''

console.log(Number(numbers)) // 0
console.log(parseInt(numbers)) // NaN
console.log(parseFloat(numbers)) // NaN

ちなみにnumebrsに文字列の数値ではなく、普通の文字列が混ざっている場合は、どの値もNaNが返ってきます。

const numbers = 'a1234'

console.log(Number(numbers)) // NaN
console.log(parseInt(numbers)) // NaN
console.log(parseFloat(numbers)) // NaN

ここまでNumber()とparseInt()、parseFloat()の違いについて見てきましたが、

特に Number()に空配列が渡された時に数値の0が返って来る事に要注意です。

Discussion