1. 導入:なぜ「数値リテラル」を知る必要があるのか?
プログラミングをしていると、数字をそのままコードに書く場面は非常に多いです。しかし、大きな数字を扱う際、ゼロの数を数え間違えてバグを生んでしまった経験はありませんか?数値リテラルを正しく使うことで、コードの可読性を高め、ミスのないメンテナンスしやすいプログラムを書けるようになります。今回は、JavaScriptで数値をスマートに扱うための基本テクニックを解説します。
2. 基礎知識:リテラルとは何か?
「リテラル(literal)」とは、プログラムのコード内に直接記述された「値そのもの」を指します。例えば、`const age = 25;` というコードの「25」が数値リテラルです。JavaScriptでは、単に数字を書くだけで数値として扱われますが、より大きな数字や、見やすい表記法があることを知っておくと、現場で重宝されます。
3. 実装/解決策:読みやすさを高める「数値区切り文字」
JavaScript(ES2021以降)では、非常に大きな数値を扱う際に「アンダースコア(_)」を区切り文字として利用できます。例えば「1000000000(10億)」と書くとゼロの数が分かりにくいですが、「1_000_000_000」と書くことで、人間にとって直感的に桁が把握できるようになります。これは値には影響せず、あくまでコードの可読性を上げるための工夫です。
4. サンプルプログラム
以下のコードをブラウザのコンソールなどで実行してみてください。
// 通常の数値リテラル
const price = 500;
// 大きな数値にアンダースコアを使用して可読性を向上させる(数値区切り文字)
// 100万円を表現する場合
const budget = 1_000_000;
// 計算結果を確認
console.log("予算は " + budget + " 円です");
// 16進数リテラル(0xから始める)
const hexColor = 0xFF0000; // 赤色を表す16進数
console.log("16進数の値: " + hexColor);
// 指数リテラル(eを使うと大きな数を短く書ける)
// 1e6 は 1の後ろに0が6個つく(1,000,000)という意味
const bigNumber = 1e6;
console.log("指数表記の値: " + bigNumber);
5. 応用・注意点:現場で役立つポイント
数値リテラルを使う際、いくつか注意すべき点があります。
・ブラウザの対応状況
アンダースコアによる数値区切り文字は比較的新しい仕様です。非常に古いブラウザや環境で動作させる必要がある場合は、トランスパイラ(Babelなど)を通す必要があります。
・文字列との混同に注意
数値リテラルはあくまで「数値型」です。`const num = “1000”` のように引用符で囲むと「文字列型」になり、計算ができなくなるため、リテラルとして書くときは引用符を付けないように気をつけましょう。
・読みやすさの優先順位
コードは「書く時間よりも読まれる時間の方が長い」と言われます。自分が書いたコードを3ヶ月後の自分が見たときに、すぐに桁数が理解できるか?という視点を持つことが、プロフェッショナルへの第一歩です。積極的に区切り文字を活用していきましょう。