JavaScript parseInt, paeseFloat が NaN になるとき 0 を返したい
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 で事足りそう。
[参考]