はじめに
仕事中に発狂したので記事を書きます。
#文字列から数値に変換
JavaScriptを使用したことがある方なら、一度は文字列から数値に変換したことがあると思います。変換する際に、 Number()
、 parseInt()
、 parseFloat()
のどれかを使用すると思いますが、その際に安易に Number()
を選んでいませんか。私は迷わず Number()
を選んでいました。そのせいで意図しない挙動が起きました。
以下のコードを見れば皆さんも発狂すると思います。
console.log(Number('')) // 0
console.log(parseInt('')) // NaN
console.log(parseFloat('')) // NaN
「なぜ NaN
を返してくれないんだ」、「そもそも、なぜ統一していないんだ」と思ったのではないでしょうか。
しかし、心優しきエンジニアの皆さんは、このくらいでは発狂しないと思いますので、他の場合も見てみましょう。
console.log(Number(null)) // 0
console.log(parseInt(null)) // NaN
console.log(parseFloat(null)) // NaN
console.log(Number(undefined)) // NaN
console.log(parseInt(undefined)) // NaN
console.log(parseFloat(undefined)) // NaN
console.log(Number('Infinity')) // Infinity
console.log(parseInt('Infinity')) // NaN
console.log(parseFloat('Infinity')) // Infinity
// ちなみに 'Infinity' ではなく Infinity の場合でも結果は同じです。
「くぁwせdrftgyふじこlp」
おわりに
しっかり使い分けましょう。
Comments
Let's comment your feelings that are more than good