『リーダブルコード』を学習する6

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

序文

リーダブルコード学習6日目。
4月全日更新ならず。
生活リズムが乱れてしまったので、また今日から仕切り直し。

GitHub

github.com

進捗

  • 9章 変数と読みやすさ
    (学習時間:2時間)

コード実装部分(一部)

\CodeExample\9章 変数と読みやすさ\9-2 変数のスコープを縮める\submitted.js

// グローバル変数を使わない(JavaScript)
let submitted = false;

const submitForm = function (formName) {
  if (submitted) {
    return; // 二重投稿禁止
  }
  // 処理
  submitted = true;
};

/*******************
 改善例
********************/
// クロージャを使用する(むずい…)
const submitForm = (function () {
  let submitted = false; // この変数は以下の関数からしかアクセスされない
  return function (formName) {
    if (submitted) {
      return; // 二重投稿禁止
    }
    // 処理
    submitted = true;
  }
}());
  • その他実装部分

github.com

実行結果

ねえよ

感想

今日はJavaScriptクロージャの話題が出てきました。

qiita.com

ひとつずつ追っていけばなんとなく理解できる気はするけど、自発的に適切に使えるかっていうととても無理だと思う。

JavaScriptの無名関数とかアロー関数とかがどれくらいで理解できるかっていうのはプログラミング適性を測る割と適当な判断材料になるんじゃないかしら。
私はありません。

カロリーメイトください。

BGM

ファックフォーエバー / 日本マドンナ

www.youtube.com イントロがGO!GO!7188にしか聞こえない