Boolean の初期値は「true と falseのどっちがいいの?」

公開:2020/10/06
更新:2020/10/12
1 min読了の目安(約1400字TECH技術記事

こんにちは、kageko です。
今回は、コードを書いていて、ふと思ったことを記事にしました。
初めての技術記事です。そんなに期待しないでください!

Boolean の初期値は「true と falseのどっちがいいの?」

以前は、動作が保証されていればどちらでもいいのかなーと思っていました。
コンピュータサイエンスを学ぶまでは、コードに整合性が取れていれば「どちらでもいいのではないか」と思っていました。

コンピュータサイエンスを学んだ結果、考えが変わりました

最終的には、品質が担保できていれば「どちらでもいい」という回答になりますが、以下のような理由から
可能な限り「false(偽)を初期値にできるよう」にしています。

コンピュータ(回路)の中では、0はFalse(偽)として、電流が流れていないということを示し、
1ではTrue(真)として、電流が流れていることを示します。これらの0と1を2進数と呼びます。

引用:Recursion「データ:2進数とデータ解釈」より (https://recursionist.io/)

サンプル

例えば、ボタンをクリックすると、コンテンツが開閉するtoggleを作ってみました。
今回は、JavaScript で、書いています。

HTML
// コンテンツは最初は閉じている設定です。
<div class="toggle">
  <button class="toggle__button" @click="toggleFlag(true)">toggle button</button>

  <div class="toggle__contents" v-show="this.toggleContents = true">
    ..contents..
  </div>
</div>
CSS
.toggle__contents {
  display: none;
}
JavaScript
// Boolean型指定
let toggleContents = Boolean(false);

// .toggle__contents を取得
const contents = document.getElementsByClassName('toggle__contents')[0];

function toggleFlag(flag) {
  if (flag === true) {
    contents.style.display = 'block';
  }
}

このような設計にしたことで「コンテンツが開いている(存在する)ことが真」と言うことがわかり、「コンテンツに対して変化(=開く)があったとき、どう言う処理をするか」がわかりやすくなりました。


ここまでご覧いただき、ありがとうございました!
まだ完全に学びきれていないので、自論です。
学ぶこともコード書くことも、とても楽しいことなので、是非続けていきたいと思っています。

P.S.
コンピュータサイエンスは、Recursion(recursionist.io)で学んでいます。
今通っている大学(通信制)を卒業したら、コンピュータサイエンスの大学か大学院に行く予定です。