初心者向け JavaScript 勉強会資料公開
UK が
「初心者向け JavaScript 勉強会する」
と言っていた。
俺も参加しようかなとか考えてたら
- UK:「なんか喋れ!」
- 俺:「俺は JavaScript 片思いだと何度も(ry 」
- UK:「良いから喋れ」
- 俺:「無理です><」
- UK:「黙れ!喋れ!」
- 俺:「どっちですか。・゚・(ノД`)・゚・。 うえええん」
と言うやりとりがあり
UK を応援する意味でもと思い
「じゃぁ、LTぐらいで・・・」
と、引き受けました。
(個人的には喋ってって言われるのは大好きです。自分も資料まとめたり凄く勉強になるので)
- 俺:「Rhino とか Phobos とかで良いですか?(すこしでも得意な土壌に持ってこうとしてる) 」
- UK:「初心者向けだって言ってるだろ!!」
- komaku:「グリモン聞きたい」
- UK:「それだな」
- 俺:「 工エエェェ(´д`)ェェエエ工工」
という、やりとりがありグリモン入門みたいなのを語って来ました。
「猿でもわかる Greasemonkey」
途中でグリモンインストールできるので
それをインストールして再読込した後は「j,k,上下左右キー」で移動できます。
本当に即興で作った&勉強中なので嘘や間違いなどもあるかと思いますが、
優しくDisって教えてると嬉しいです。
実は UK も HolyGrail も初心者に何とか JavaScript の良さを
わかって貰おうというのが必死で、凄く感動したのでした。
(徹夜明けでマックで語り合ったりしてました。)
なので、マークアップエンジニア向けに
DOM 操作などを増やしたり
まず、UK が基本的なことを語ることが決まったりしてたのです。
(オブジェクトって何?配列って何?連想配列って何?)
そんなこんなで会場は 株式会社ノッキングオン Knockin'on様に借りてやって参りました。
ちなみにクイズに関しては前日に UK たちとのチャットで話してて
「明日それも喋った方が面白くね?」
と言うことになり、当日は FireBug のコンソールで実際に打って発表してました。
その辺も含めて hamashun さんが凄く良くまとめられているので
そちらでどーぞ。
眠いです。
コメント
> じゃぁ、無名関数で囲む必要ないのかというと
> そういうわけではありません。
複数のGreasemonkeyスクリプトで変数が共有されるのは
window.x = "foo";
のようにwindowオブジェクトをいじったときのみであり、グローバルオブジェクトに変更を加えても他のGreasemonkeyスクリプトに影響を及ぼしません。(Greasemonkey環境下ではグローバルオブジェクト != windowオブジェクト)
ですので、トップレベルで
var y = "bar";
と変数宣言を行おうが、
z = 42;
のように宣言なしで変数に代入し、結果グローバル変数を新たに作ろうが、それらが他のGreasemonkeyスクリプトに干渉することはありません。
よって、今からスクリプトを書く際に、それを関数式で囲む必要はないと思います。
投稿者: nanto_vi | 2007年7月16日 05:34
なるほど
Greasemonkey の Windowオブジェクトだけ共有されるという認識であってますか?
勉強になります。
ありがとうございます。
投稿者: ヨシオリ | 2007年7月16日 05:43
関数式で囲んでおくと、Bookmarkletとしても実行できるように作る場合に他スクリプトとの干渉を抑えられます。
投稿者: holidays-l | 2007年7月16日 13:46
ありがとうございます。
なるほど。
>Bookmarkletとしても実行できるように作る場合に他スクリプトとの干渉を抑えられます。
確かにそうですね。
JavaScript 本当に奥が深い・・・
勉強になります。
投稿者: ヨシオリ | 2007年7月16日 23:36
便乗補足。
OperaのUserJSはグローバルを汚染する(※)ので、場合に応じてfunctionで囲む必要があります。
なのでFirefoxとOperaの両方で使えるものを書くときはfunctionで囲っておくのがベターです。
※
OperaのUserJSはOperaで動かないサイトのScriptをユーザー側で修正できるようにするというアイディアから生まれたので、グローバル汚染をする必要があったという経緯があります。
まあ、グリモンモードでは汚染しないようにするという気の利いたことをしてくれても良いとは思いますが。
投稿者: os9 | 2007年7月17日 14:24
そうそう、Opera の UserJS!!
の話をしようと思ってたのを今まで忘れてました・・・orz
補足も含め色々ありがとうございます。
投稿者: ヨシオリ | 2007年7月17日 19:19
会場で聞いていて「あれ?」と思い,後で確認してみたんですが,window オブジェクトが共有されることや opera の件は知りませんでした.
参考になります!!
投稿者: kosugi | 2007年7月21日 16:27
俺も凄く参考になりました。
やっぱり公開すると勉強になります><
投稿者: ヨシオリ | 2007年7月26日 21:51