dポイントプレゼントキャンペーン実施中!

JavaScriptの全ての言語仕様が分かる書籍を探しています。
入門書的なものではなく、JavaScript言語仕様全体が
調べられ、分かりやすければ、なおGoodです。

現在までは、Tohohoさんのページを見てきました。
http://www.tohoho-web.com/js/index2.htm
優れたページですが、これでも全く歯が立たず情報が足りません。

例えば、this の意味がつかめません。
var q= this.location.serach.substring(1);
ここで 変数qには、現在のURL指定が
http://hogehoge/somepage.htm?x=1&y=2
の場合、
'?'以降の'x=1&y=2'がqに入る様なのです。(多分です。)

C++ではthis->xで自クラスのメンバを指しますが、
JavaScriptにもこうしたオブジェクト指向の考え方があると
思われるものの、thisが何か、概念、仕様がわかりません。

こうしたJavaScript言語仕様を骨までしゃぶることのできる
書籍をご存知でしたら、紹介願います。

A 回答 (6件)

this が何か、を知るには、仕様を把握しなければならない。

その考えは正しいです。以下の仕様書をまず印刷してトライください。

ECMAScript Language Specification - 3rd edition
http://www.ecma-international.org/publications/f …

次に this が何か? という疑問に関しては、Host Object, Global Object などのオブジェクトを学ぶ必要があります。また Host Object は実装(処理系)によって様々です。実装毎の説明は別のドキュメントをたどることになります。

(参考URLについて)

Douglas Crockford's Wrrrld Wide Web の JavaScript ポータルです。仕様に関するドキュメント・リソースが充実しています。また Douglas Crockford さんは 2008/5月に、最近『JavaScript: The Good Parts』をだされました。

参考URL:http://javascript.crockford.com/, http://www.amazon.com/exec/obidos/ASIN/0596517742/
    • good
    • 0
この回答へのお礼

書籍のご紹介ありがとうございます。
近所の本屋さんでは閲覧できないので、
紀伊国屋書店にでも行って自分に合うかどうか見てみます。

今、扱っているコードは全体では相当大きな規模の
JavaScriptとWEBサーバアプリで、不明部分をピンポイントで
調べても、あとからまた不明点が次々に沸いてくるため、
全体の仕様を把握しようとしています。

JavaScriptの難しさを知るまで、甘く見てました。
C言語が極小仕様と比較すると、
JacaScriptは非常に言語仕様が大きいです。

お礼日時:2008/05/18 15:28

質問者の書籍紹介は、ANo.4 で回答済みですが、コメントを追記します。



> JavaScriptの難しさを知るまで、甘く見てました。
> C言語が極小仕様と比較すると、JacaScriptは非常に言語仕様が大きいです。

回答者は C の仕様書を打ち出したことがなく、比較したことがありません。ただ、JavaScript の仕様を掌握するのが困難なほど大きいと思うか? と言われれば、ECMAScript 3rd Edition について言えば困難には感じませんでした。ECMAScript 3rd Edition の記述範囲について、ですが。

一方、私が最近 Code Reading を楽しんでいる jQuery, Prototype.js は、仕様や実装の掌握は大変です。高度なプログラミング技法が使用されているし、様々なプログラミング言語のよい所が導入されていて、背景事情を一緒に学びながら紐解いて、ようやく咀嚼できているような状況だからです。

『相当大きな規模のJavaScriptとWEBサーバアプリ』のソースコードにアタックされているとのこと。JavaScript は回答者の大好きなプログラミング言語で、ぜひ、この機会にものにしてもらえれば、と応援します。
    • good
    • 0

JavaScriptの基本はご存じ、C++でオブジェクト指向言語の概念もご存じというようなので、「JavaScriptではオブジェクト指向をどう取り扱うのか」をまず学べば、あとは、とほほのリファレンスでかなり十分だと思います。


http://builder.japan.zdnet.com/sp/javascript-kic …

言語自体を骨までしゃぶるには、他の方が書かれている分厚い書籍でしょうね。
でも私はむしろ、prototype.js や jQuery.js のようなライブラリが提供する機能を学ぼうと思っていますが。
    • good
    • 0

var q= this.location.search.substring(1);



var q= window.location.search.substring(1);
通常と書くことの方が多いんじゃないかなぁ。

つまりjavascritの場合ブラウザが基本ですから、
まずはブラウザがルートにあるわけで、そのグローバルオブジェクトが
windowです。
なのでwindow内でthisを指定しているので、thisはwindowになります。
<script>
document.write(this);
</script>
とすればwindowオブジェクトが返っていることがわかります。

で、「window.」は省略してよいことになっているので
var q= location.search.substring(1);
でいけます。

つまりは、javascriptでもthisは自分自身ですね。
メソッドの中で使われるthisはコンテナを示します

<script>
window.onload=function(){
document.getElementById("hoge").onclick=function(){alert(this.className)}
}
</script>
<span id="hoge" class="fuga">hogehogehoge</span>

とすれば、ここでのthisはhogeというidのオブジェクトですから、そのclassを
alertするとfugaが表示されます
    • good
    • 0
この回答へのお礼

ご協力ありがとうございます。
Amazon.co.jpでJavaScript本の書籍を
検索してきましたが、実際に見ないと
自分の要望に合うかわからないため、
大きめの書店に出かけて探してみます。

JavaScript言語仕様が全てわかるものを探して
います。

お礼日時:2008/05/17 20:50

tohohoが最高ですよ。


リファレンスとしてこれだけ網羅されているのは他に
ありません。CやC++をご存知ならリファレンスだけで
十分なはずです。私もそっちから入りましたが十分で
した。thisもC++と同じですよ。
    • good
    • 0
この回答へのお礼

ご協力ありがとうございます。
Amazon.co.jpでJavaScript本の書籍を
検索してきましたが、実際に見ないと
自分の要望に合うかわからないため、
大きめの書店に出かけて探してみます。

JavaScript言語仕様が全てわかるものを探して
います。

お礼日時:2008/05/17 20:51

JavaScriptはオブジェクト指向ですよ。


もちろん、new演算子も使えますし、生成したインスタンスに後から
メソッドを加えちゃうなんてこともできて、結構面白いですよ。
C++みたいに堅苦くないです。

thisに限らず、どんなメンバがあるのか、などを知りたいのであれば、
昔は、Netscape社のホームページを見ていましたが、最近行ってなく、
久しぶりに行ってみたら無くなってました(当然かもしれませんが・・)

ちなみに、昔のリンクが一覧になってるページがありました(当然リンク切れですが)
http://allabout.co.jp/internet/javascript/subjec …

今はMozillaにいくらかあるようです。
http://developer.mozilla.org/en/docs/About_JavaS …
    • good
    • 0
この回答へのお礼

ご協力ありがとうございます。
Amazon.co.jpでJavaScript本の書籍を
検索してきましたが、実際に見ないと
自分の要望に合うかわからないため、
大きめの書店に出かけて探してみます。

JavaScript言語仕様が全てわかるものを探して
います。

お礼日時:2008/05/17 20:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!