質問: 新人にjavascriptを教えている最中ですが、 nullと0の違いがなかなか理解できないみたいです。 まったくのプログラム未経験者に伝えるにはどのように伝えれば Nullと0の違いを説明できるでしょうか? ちなみに、私の説明では 「nullは存在しない、0は0という数字が存在している。」 という風に説明しているのですが、 なんとなくわかったけど、腑に落ちない。 という感じです。 もうちょっとわかりやすく伝わりやすい方法があれば教えてください!
回答: 「変数」だけで 0 と null の違いを理解するには、必要な概念が不足しているので難しいと思われます。 ※0 や null の使い道、使い分けなどは他の方の説明が素晴らしいので、それぞれの意味のみに的を絞ります。 ### 【CPUとメモリとメモリアドレスの関係をイメージしてもらう】 var a = 0 で変数を作成するというのは、メモリ(分からなければExcelシートをイメージしてもらう)上の **空いている場所** に **0** という値を保存することを意味する。 次に console.log(a) としたとき、 0 を表示するためには、CPUがメモリ上から **0 が保存されている場所を探しにいく必要がある**。 これをメモリアドレス(分からなければExcelシートのセル番地「A1」をイメージしてもらう)という。 このメモリアドレスについては、CPU側がうまく管理してくれるが、これを破棄するのが a = null つまり、Excelシートのイメージでは、仮にA1というセルに 5 という値がある状態は「5 という値は A1 にあるよ」といえる。 ここでセル番地(メモリアドレス)だけ消してしまうとどうなるでしょう。 この状態は「5 という値は ?? にあるよ」と言うのと同じで、「存在するけど見つけられない」から「使えない」状態になります。