JavaScript: The Good Parts――「良いパーツ」によるベストプラクティス 読了

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス


200ページ弱の薄い本だし、内容も知ってることの確認に近かったので、ひとから借りて一晩で読了。

というふうに読むのは早かったけど、すげーいい本。ここに書いてある内容を知らずにJavaScriptを書くのは危険すぎる。

JavaScriptは言わばひとかたまりの大理石であり、私はその中からこの言語のすばらしい本質が現れるまで、美しくない機能を取り除いていく。最終的に私が削り出すことになる美しいサブセットは、より信頼でき、読みやすく、メンテナンスがしやすく、すべてにおいて非常に優れた言語になると私は信じている。」

http://www.oreilly.co.jp/books/9784873113913/

というのが本当に実現されていて、内容的にもサイ本のベターなサブセットになってる。
id:dankogaiが書いてるみたいに、HeadFirst JavaScriptのあとにこの本を読めば、JavaScriptを書くために必要な知識は一通り身に付くので、サイ本はとくに読まなくてもいいかもしれない。もちろん、自分で大理石を削っていこうというひとはサイ本も読んでおく必要があるけど。

とくによかったのは関数、関数スコープ、クロージャ、カリー化のあたり。個人的にJavaScriptの真骨頂だと思っているところがしっかり説明されていて読んでて楽しかった。

すべてのノービスJavaScriptプログラマにお勧めしたい本。

惜しいところ

ひとつ惜しいのは誤植が多すぎること。
邦訳版でもバリバリ直してるみたいだけど、
http://www.oreilly.co.jp/books/9784873113913/#errata1
oreilly.comのほうのerattaページが超盛り上がってるので、邦訳版でも頑張って取り込んでほしいなあ。
http://oreilly.com/catalog/errata.csp?isbn=9780596517748

一番直してほしいのは、45, 46ページのクロージャのところのコード。

var ls = [{},{},{},{},{},{},];
45ページのダメなコード
var add_s = function(nodes){
	var i;
	for (i = 0; i < nodes.length; i++){
		nodes[i].bar = function(){
			alert(i);
		};
	}
}(ls);

これを実行すると

for (i = 0; i < ls.length; i++){ ls[i].bar(); }

こうなる。

6
6
6
6
6
6

46ページのよいコード
var add_s = function(nodes){
	var i;
	for (i = 0; i < nodes.length; i++){
		nodes[i].foo = function(e){
			return function(){
				alert(e);
			};
		}(i);
	}
}(ls);

これを実行すると

for (i = 0; i < ls.length; i++){ ls[i].foo(); }

こうなる。

0
1
2
3
4
5

ということなんですよ。エレガント!!

Head First JavaScript ―頭とからだで覚えるJavaScriptの基本

Head First JavaScript ―頭とからだで覚えるJavaScriptの基本


JavaScript 第5版

JavaScript 第5版