• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:これらの本はレベルアップにおすすめでしょうか?)

これらの本はレベルアップにおすすめでしょうか?

このQ&Aのポイント
  • 2000年~2006年の頃の本ですが、その頃のjavascriptと現在のjavascriptではヴァージョンが変わってしまったりしていないでしょうか?問題がなければ全部買おうと思っています。
  • JavaScript本格入門 ~モダンスタイルによる基礎からAjax・jQueryまでという本は読みとおし、いろいろなサイトを見て勉強しています。
  • 下記のようなコードを理解できるようになりたいです。例えば 最初のfunction find (_, n) {の部分で_は何か、nに何が入るのか… function (n, i) { find.call (this[i], null, n); }でnとiの引数に何が入るのか、this[i]は配列?これは何か…などです。

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.3

#1 です。 参考書は一つの通過点だと思います。 既に基礎的な知識があり、そこからステップアップを図る場合は何度もコードを書いて覚えるしかないと思います。 書籍を読むのは著者のコードをまとめて読めるからです。 (著者の主張するコーディングパターンを理解し、それを取り込むかどうかはまた別の話です。) ですので、他人のコードを読むために書籍を読むことは「読む力をつける」という意味で無駄ではないと思いますが、すぐに読めるようになるわけでもないことは指摘しておきます。 『JavaScript : The Good Parts』がbabu_babooさんのコードを読むために有効か、と問われれば Yes と即答できない部分もあります。 『JavaScript : The Good Parts』は ES5 前の書籍ですからね…。 Clockford氏が発端で ES5 に取り込まれた機能もあるので全くの見当違いではないと思いますが…。 > function (event, 変数名) { ~; }と決まっていたのですか。 > ネットで調べても情報がなかったので、やはり本は必要ですね。 一応指摘しておきますが、ネットにも情報はあります。 https://developer.mozilla.org/ja/DOM/event 本の良いところはネットで検索する能力や時間を肩代わりしてくれることです。 十分なリファレンスサイトを知っていて検索スキルが高ければ、書籍は不要とする考え方もあります。 実際、私も書籍よりもネットで得た知識の方が多いですから。

tekkenman7
質問者

お礼

パーフェクトJavascriptだけにしました。 大変参考になりました。ありがとうございました。

その他の回答 (2)

回答No.2

あ、う~、ん~、みおぼえのあるあこーどだとおもったら…。 (think49 さん、フォローありがとうございます。おほめいただき(?)こうえいです^^;) わたし、「本」については、かたることができません。 なぜなら、こうにゅうしたほんは「ポケットリファレンス」と「The Good Parts」だけ。 えいごもさっぱりです。わやくのりふぁれんすでもないと、おてあげです。 もし、いかのようなもんだいを下のようなこーどでとくかいせつしょなら、せつにかいたいとおもいます。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1075728660 <script type="application/javascript; version=1.8"> let permutation =  (let (x = ['a', 'b', 'c', 'd', 'e', 'f', 'g'])   [[ x[a] + x[b] + x[c] + x[d] + x[e] + x[f] + x[g]]    for (a in x)    for (b in x)    for (c in x)    for (d in x)    for (e in x)    for (f in x)    for (g in x)    if (a != b && a != c && a != d && a != e && a != f && a != g &&           b != c && b != d && b != e && b != f && b != g &&                c != d && c != e && c != f && c != g &&                     d != e && d != f && d != g &&                          e != f && e != g &&                               f != g)   ]); document.write (permutation.join ('<br>')); alert(permutation.length); </script> -- > 最初のfunction find (_, n) {の部分で_は何か、nに何が入るのか… もともとかんすう find は、onclick でよばれる「いべんとはんどら」でした。 そしてそのだい1ひきすうは、いべんとおぶじぇくとときまっています。 ほんらいであれば、 function find (event, n) {~ のようにかくべきでした。 しかし、そのかんすうではへんすう n こそがじゅうようです。 event はつかわれていないのでめだたないように "_" をつかいました。 -- [3,2,4].forEach (  function (n, i) { find.call (this[i], null, n); },  document.querySelectorAll ('#kensaku select[name^="sel_"]'); これの this は、document.querySelectorAll ('#kensaku select[name^="sel_"]') であつめた、いきていないのーどりすとです。 (ふくすうの select ようそです) へんすう n には、それぞれ 3,2,4 がだいにゅうされ、かんすう find がそれぞれよばれます。 (へんすう i は、いま はいれつのなんばんめかをしめす、いんでんとばんごうです。) よびだすときにいべんとがおこったわけでもないので、だい1ひきすうには、なにもつけません。 (function.call でよびだすと、this が1ばんめになるので1つずれる) かんたんにいえば、あつめた select ようそそれぞれに、 3、2、4をつけて find にわたすため。 そもそもそのこーどは、さいしょにかいたこーどを、むりやりつかおうとやっつけでかいたものです。 -- var hoge = function () { //....(4)  var a = '聞くだけ聞いて返事のしないやつは嫌いだ'; //...(3)  return function () { //...(2)   alert (a); //.......(1)  }; } (); hoge (); (1) からみると、かんすう(2) にはへんすう(3) がありません。 なので、めんどうですが、さらにそとのかんすう(4) まで、けんさくにいきます。 したのこーども、country をさがしに、そとへさがしにいきます。 var country = ['中国', '韓国', 'タイ', '台湾', 'ブータン']; var friends = [2,3,4]; var result = friends.map (function (f) { return country[f]; }); var fish = [2]; alert(result); ところが、#Array.map (forEach, filter などなども) には、さがさずにすむうほうがあります。 それが this です。 var country = ['韓国', '中国', 'タイ', '台湾', 'ブータン']; var AntiJapanese = [0,1]; var result = AntiJapanese.map (function (f) { return this[f]; }, country); うえのれいだいは、つかいかたがちがう!と、してきされそうなので filter をつかう var result = country.filter (function (_, i) { return -1 < this.indexOf(i); }, fish); (ちょっと笑うところ) ところが、#Array.reduce などつかえないものもあります。 (とてもざんねんです) -- Q. [1,2,3,4,5,6,7,8,9,10] の合計を求めよ A. var a = [1,2,3,4,5,6,7,8,9,10]; var t = 0; for (var i = 0, I = a.length; i < I; i++) {  t += a[i]; } alert (t); -- A // はいれつに 0 がないもとのする for (var a = [1,2,3,4,5,6,7,8,9,10], i, n, t = i = 0; n = a[i++]; t += n); alert (t); A. JS1.8 alert ([1,2,3,4,5,6,7,8,9,10].reduce (function (r, n) { return r + n; }, 0)); -- A. JS1.8ならさらにしょうりゃくできるので alert ([1,2,3,4,5,6,7,8,9,10].reduce (function (r, n) r + n)); -- 私は、「井の中の蛙」だと思っています。しかもかなり深い井戸の中に居ます。 そこに餌を投げ入れてくれる人々(think49さんもそのお1人/*好感度アップ返し*/)がいらっしゃいます。 これがまたかなり濃厚なのです。 「海を見てみろ」と言っているようなのですが。 吸盤が小さいとか。 遠くが見にくくなったとか。 はたまた体重が重いとか・・・。

tekkenman7
質問者

お礼

JavaScriptパターンはやめて、 パーフェクトJavaScript JavaScript : The Good Parts に決めました。 babu_babooさんもthink49さんと同じJavaScript : The Good Partsで身につけたのですね! function 任意の関数名(引数){ ~; }ではなく function (event, 変数名) { ~; }と決まっていたのですか。 ネットで調べても情報がなかったので、やはり本は必要ですね。 babu_babooさんは本はほとんど読まずに、どうやって学んだのか興味があります。 goo質問を読みまくって学んだのですか?

  • think49
  • ベストアンサー率59% (285/482)
回答No.1

レベルアップということですが、質問者さんの立ち位置を明らかにすると適切な回答が得られると思います。 「JavaScriptの制御構造(if,for等)まで理解できている」とか「DOM は理解出来たが Ajax はまだ」とか…。 掲示されたコードは http://okwave.jp/qa/q7046739.html の #9 の方のコードですね。 babu_baboo さんのコードは下記の特徴があります。 - ECMAScript 5 規定のコード - クロスブラウザは気にしない - ショートコーディング - ライブラリは使わない ですのでお仕事に使われる予定でしたら、もう一工夫必要になります。 参考書としては『JavaScriptパターン』『JavaScript 第5版』『JavaScript : The Good Parts』がお勧めです。 私は未読ですが、『パーフェクトJavaScript』も定評があるようです。 http://d.hatena.ne.jp/sandai/20110930/p1 ECMAScript 5 に触れられている書籍は『JavaScript 第6版』『JavaScriptパターン』『パーフェクトJavaScript』あたり。 『JavaScript 第6版』はまだ和訳されていなかったと思います。 かなりレベルの高いコードですので、もし初学者の段階でしたら babu_baboo さんのコードを参考にするのは後回しにした方がいいかもしれません。 > これらの本はレベルアップにおすすめでしょうか? 発売日的に見てお勧めできる本がありません。『JavaScriptビジュアル・リファレンス』は所持していますが、広く浅く学ぶ分には良書ですが、深く学ぶには物足りない書籍です。 ECMAScript 5 に触れられているか、コーディングパターンを紹介してくれる書籍がベターだと思います。 > JavaScript本格入門 ~モダンスタイルによる基礎からAjax・jQueryまで 目次を読む限りでは「ECMAScript→DOM→Ajax→jQuery」と一通り学べるようですが、ECMAScript 5 に触れられているかが焦点となるかと思います。 これ1冊ですべてを網羅するのはかなり難しいかも。 http://gihyo.jp/book/2010/978-4-7741-4466-5

tekkenman7
質問者

お礼

>レベルアップということですが、質問者さんの立ち位置を明らかにすると >適切な回答が得られると思います。 >「JavaScriptの制御構造(if,for等)まで理解できている」とか >「DOM は理解出来たが Ajax はまだ」とか…。 if,for,while,swichなどの制御構造 オブジェクトの使い方や種類などの基本、 http://uhyohyohyo.sakura.ne.jp/javascript.htmlのDOM、 は理解できていますが、jQery,Ajaxはまだ未学です。 パーフェクトJavaScript http://d.hatena.ne.jp/sandai/20110930/p1 基本的なところから深く説明されている印象を持ちました。 JavaScriptパターン http://www.oreilly.co.jp/books/9784873114880/ がよいのかなと思いました。 1冊でなく2冊なのは、予算オーバーですが、 分からない箇所があったときにカバーし合える、 いろいろな角度から理解できることを期待して選びました。 【JavaScriptパターン】は中身を見ることが出来なかったので分からないですが、 中級者向けのテクニックを身につけられるようなので。

関連するQ&A