nullと整数を比較すると起きること

null小ネタプログラミング

12/18/2025


この記事について

この記事では、「nullと整数を比較するとこうなるよ」
「こういう問題が起きるかもね」
というちょっとした話をします。

nullってなに

この記事を読んいでるということは、ほぼほぼ
ないと思いますが、念のためnullについて説明します。

一言で言うと、nullは

「空っぽでなにもない状態を意味するもの」

です。

PythonでいうNone、GoやLuaでいうnilのようなものです。

数字と比較してみる

本題です。そんなnullを数字と比較するとどうなるのか。

ここでは、例え話をしようと思います。
太郎君は100m走のタイムが2秒だったとします。

タイムが意味不明なのはわかってるので、ご安心ください。

次郎君は100m走を今までで一度も走ったことがないので、
記録がnullです。さあ、この2人の記録を比較すると
どうなるでしょうか?

ここではJavascriptを使ってみます。

const taroRecord = 2; const jiroRecord = null;

そして、太郎君の記録の値の方が小さい(=速い)かを比較します。

console.log(taroRecord < jiroRecord); // false

おっと、どうやら次郎君の方が速いようです。
いやでも、記録がない次郎君の方が
速いなんてことはあり得ませんよね。
このようなことが起きる理由を考えてみましょう。

なぜ次郎君の方が速いのか

それは、nullが0のような意味合いで扱われているからです。
どう言うことかと言うと、Javascript
(というか大体のプログラミング言語)では、
整数とnullを比較すると「nullは0だろうな」と
解釈されます。

つまり、さっきの次郎君のタイムが0秒に
なっているような状態です。

どう解決する?

これは僕が考えた限りでは2つ方法があります。
一つ目は、初期値をめちゃくちゃ大きい値にすること。

const taroRecord = 999;

もう一つは、比較用関数を作ってnullを弾くことです。

最後に

nullは何もないことを意味する便利なものですが、
それの特性をあまり知らずに比較などをしてしまうと
問題が起きることがあります。

これだけは覚えて帰ってください。

nullの扱いには注意!!!