『開眼!JavaScript 言語仕様から学ぶJavaScriptの本質』初版第8刷を購入した。
良書(と思っていたが、ちょっと物足りなさ過ぎかも)なのだが、誤りが多い。なのに、正誤表が無い。。。
オライリー・ジャパンさん、誤りを5年も放置しないでください。
正誤表
- 訳者まえがき
- 8行目の「読み物の分量としてはの」は、「は」は不要。
- 7ページ
- 最下行から次ページにかけての「インスタンスとみなされます」は、「インスタンスといいます」のほうが分かりやすい気がする。
- 19ページ
- サンプルコード3行目の
var myString = null;
は、複製した変数に影響しないという意図からすると、var
が無いほうが伝わりやすい。
- サンプルコード3行目の
- 19ページの訳注
- 2行目の「([1 === '1'」は、「[」が不要か、または「]」が不足。
- 4行目の「([1 == '1'」は、「[」が不要か、または「]」が不足。
- 4行目の「等値演算子」は、「同値演算子」の誤り。
- 31ページ
- 下部のサンプルコードのJSFiddleは、なぜかJSフレームワークのMootools 1.3.2が有効になっており、それがために動かない。
- 32ページ
- 下から2行目の「生成されたインスタンス」は「生成されたオブジェクト」の誤り?
- 40ページ
- 下部のサンプルコード最下行の
myObject.0
はmyObject.123
の誤り。
- 下部のサンプルコード最下行の
- 60ページ
- 3.6節2行目の「プロパティチェーン」は「プロトタイプチェーン」の誤り。
- 74ページ
- 下から2行目の「bar()に格納」は、「barに格納」の誤り?
- 78ページ
- 5.2節5行目の「引数渡した」は「引数として渡した」の誤り。
- 86ページ
- 下から5,6行目の「プロパティ」は「メソッド」の誤り?
- 90ページ
- 下部のサンプルコード下から2行目と次ページ3行目の
Object {foo = 'foo', bar = 'bar'}
はObject {foo: 'foo', bar: 'bar'}
の誤り?
- 下部のサンプルコード下から2行目と次ページ3行目の
- 93ページ
- サンプルコード2行目はif文なので末尾のセミコロンは不要。
- 96ページ
- 7.2節のサンプルコードが不適切。ブロックスコープを持たないことを確認するなら下記のようなサンプルコードが望ましい。
var foo = 1; // グローバル変数fooの値は1
if (true) {
var foo = 2; // グローバル変数fooの値が2に変更される
for(var i = 3; i <= 5; i++) {
var foo = i; // グローバル変数fooの値がiの値に変更される
console.log(foo); // 出力:3、4、5
}
console.log(foo); // ブロックスコープを持たないため、2ではなく5を出力
}
console.log(foo); // ブロックスコープを持たないため、1ではなく5を出力
- 97ページ
- サンプルコード3行目の「グローバルスコープ」は「グローバルオブジェクト」の誤り?
- 99ページ
- 7.5節2行目の「スープ」は「スコープ」の誤り。
- 103ページ
- サンプルコード3行目の
var i;
を削除して、for文の初期化式でfor (var i = 0;
と宣言したほうがコードが分かりやすい。
- サンプルコード3行目の
- 112ぺージ
- NOTEに「prototypeプロパティの値にはオブジェクトを設定することができます。プリミティブ値を設定使用した場合、その宣言は無視されます。」とあるが、下記のようにprototypeプロパティに1を設定したところ、そのまま反映されてしまったのだが?
var myFunction = function() {}; // 関数を生成
myFunction.prototype = 1; // prototypeプロパティを追加し、1を設定
console.log(myFunction.prototype); // 空のオブジェクトではなく1が出力
- 116ページ
- 8.8節5行目の「foo」は「Foo」の誤り。
- 117ページ
- 訳注の下から3行目の「foo」は「Foo」の誤り。
- 130ページ
- 上部のサンプルコードの4行目の
// 出力:'Object {color="blue"}'
は、// 出力:'Object {color: "blue"}'
の誤り?
- 上部のサンプルコードの4行目の
- 135ページ
- サンプルコードの下から2行目の「出力:foo」は、「出力:'foo'」の誤り。
不足している内容
- 「変数の巻き上げ」も知っておくべきJavaScriptの癖だと思うのだが。
- thisについて、もっと掘り下げが必要。下記記事がとても役に立ちました。
雑感
本書はES3について書かれている。次の版ではES5にする予定だったようだ。
ES5も終わろうとしているのに、なぜか出版されていない。
分かりやすかったから、ES5版で読みたかったのに。。。