JavaScript の parseInt
, parseFloat
は 10px
とか単位がある文字列でもいい感じに数値変換して返してくれますが、空文字列 ""
の時 NaN が返されます。その後の計算でエラーになることも多いので NaN
の代わりに 0 を返したいときのメモ
空文字や undefined
が渡された時 parseInt, parseFloat は NaN
を返す
parseInt("10px"); // => 10 parseInt(""); // => NaN parseInt(undefined); // => NaN parseFloat('2.5rem'); // => 2.5 parseFloat(""); // => NaN parseFloat(undefined); // => NaN
||
を使えばOK
||
は左辺が falsy な時、右辺を返すのを利用してデフォルト値を返すようにすることができる
parseInt("10px") || 0; // => 10 parseInt("") || 0; // => 0 parseInt(undefined) || 0; // => 0 parseFloat('2.5rem') || 0; // => 2.5 parseFloat("") || 0; // => 0 parseFloat(undefined) || 0; // => 0
parseInt
, parseFloat
が NaN
になるときは 0
を返すことが出来るようになりました!
₍ ᐢ. ̫ .ᐢ ₎ ヤッタネ!
parseInt
は Infinity
を返すこともあるけど、あまりなさそうだし style から取得した値をかを変換して NaN
が返される可能性がある場合は parseInt(val) || 0
で事足りそう。
[参考]