孤独プログラマー譚

孤独死が近い。

2017-05-01から1ヶ月間の記事一覧

Javascript 関数のデフォルト値設定の罠

今まで何気なくやってた、関数のデフォルト値設定。 function foo(a) { var a = a || 1; ... } 実は愚かな行動だったと知った。JavaScriptの「&&」「||」について盛大に勘違いをしていた件 - Qiita例えば、 foo(0); // 1 引数が 0 や false の場合、意図どお…

ECMAScript6 let・ループ・ブロックスコープ

ES5以下がだいだい分かってきたような気がしたから、ES6に手を出していくことにした。以下の挙動が意味不明だった。 var callback = []; for (let i = 0; i < 3; i++) { callback[i] = function () { console.log(i); }; } callback[0](); // 0 callback[1](…

JavaScript バブリングの活用

例えば、以下のようなHTMLがあるとする。 <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> ... x 1000 ! </ul> <li>をクリックした時のイベントハンドラを登録したいとする。jQueryで普通に書くとこうなる。 $('li').on('click', function () { console.log(this.textContent); }); (19ms)ピュアJSで書くと</li>…

Drupal8 FormクラスでGET通信を使う

カスタムモジュールで、Formクラスを使う時の話。デフォルトはPOST通信になる。「設定を変えればGET通信なんて余裕だぜ、はははー」 なんて思いつつ、以下に設定。 setRequestMethod($request->getMethod()); // 'GET' 時の分岐 isMetho…

JavaScriptのコンストラクタとプライベート変数

まず、コンストラクタを使うこと前提で。コンストラクタ内でメソッドを定義する場合、プライベート変数を使うことができる。よくあるカウント機能を持つサンプル。 function Nogi() { var count = 0; this.say = function () { count++; console.log(count);…