📑
JavaScriptのNumber()とparseInt()の違い
今回は、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