JavaScriptパターンを読んだ

読む前

昨日から電車で読むことにしてる。varでの変数宣言はそのスコープ(=その関数)の先頭部分にまとめる方が良い、なぜなら...とかが書いてあって良い。良さそうな指針はたまに抜き出してどこかにメモすることにしてるものの、それが続くのは本の先頭部分だけで、後になると諦めて普通に全部読んでいることが常。JavaScript、便利関数としてしか使えていないので、2月中くらいにはまともに書けるようにしたい。ところで、横幅が700pxに満たないような縦長の画像を載せるとブログに隙間が生まれてあまり良くなくて、汚くなることが多い。



読んだ後

読み終えた。前半40%くらいはすぐに使えるような汎用的な知識が沢山書いてあったけど、後半になるにつれて使いどころの限定される内容が増えてきて読むのが辛かった。そこまで気合い入れてる人じゃなければ前半だけ読んであとは閉じても良さそう。そういう風に感じる本多い。半分の内容で7割ぐらいの価格で売ってくれれば良いのにと思う。せっかく電子書籍なのでこの章だけ購入するとか出来たら良い。PDFで購入すると電車で読みやすかった。混んでいてもiPhoneで見られる。

1番の収穫 - 変数の巻き上げ

  • 関数内部の変数宣言は、関数冒頭で宣言されたことになる(値の代入はその位置のまま)
  • 関数宣言の場合はその実装も冒頭で定義されたことになる
function foo() { alert('global foo') }
function bar() { alert('global bar') }

function hoistMe() {
  console.log(typeof foo); // "function"
  console.log(typeof bar); // "undefined"
  foo(); // "local foo"
  bar(); // TypeError: bar is not a function

  function foo() { alert('local foo') }
  var bar = function () { alert('local bar') };
}
hoistMe();