とりあえず本を買ってきた。
どれがいい本なのか分からなかったから、詳しそうな
amazon:初めてのJavaScript―Ajax&DOM対応]と、[amazon:JavaScript 第5版]、[amazon:JavaScriptクイックリファレンス 第5版―JavaScript1.5対応を買ってきた。どの本も結構高くて痛い。まあ、買ったからにはやらないともったいない、という心が沸くだろうからよしとする。
まずは初めてのJavaScriptを読むことにする。
まずはHello,World
6〜7ページ目。
var dt=Date();//←dtという変数に、日付を入れる。varは変数が使える場所を指定? var msg= "Hello,World" + dt;//msgに、Hello,worldと、日付をくっつけた文字列を入れる alert(msg);//アラートでmsgを表示
こんな感じかな。
で、JavaScriptを実行するには、どうやらHTMLにscriptタグで埋め込めばいいらしい。
<html> <head> <title>Hello,World</title> <script type="text/javascript"> //ここに書く。 </script> </head> <body> </body> </html>
varはスコープ
32ページ目に、varがなんなのかが書いてあった。
関数(機能ごとにまとめて使いまわしできるようにするもの)を作ったときに、その関数の中だけで使えるようするらしい。
そうすると、外側のコードで同じ名前の変数を作ったりしても、重ならなくなる(と思う)。
とりあえず、特別必要の無いときはvarをつければいいということだろうか。
function hello(name){ var keishou="さん"; alert("Hello," + name + keishou); } hello("javascripter"); keishou="野郎"; hello("JS");
こんな感じのJavaScriptを作ると、
と表示され、次に
と表示される。function内のkeishouと、外側のkeishouは別物ってことだ。きっと、これで関数内にどんな名前の変数があるか気にしなくてよくなるってことだと思う。
2.5 練習問題
44〜45ページ
練習 2-1
- $someVariable→正しい。
- _someVariable→正しい。
- 1Variable→正しくない。始めに数値はだめ
- some_Variable→正しい。
- someŃvaliable→正しくない。&は駄目。
- function→正しくない。functionは予約語。
- .someValiable→正しくない。ドットは駄目。
- some*valiable→正しくない。*も駄目。
練習 2-2
識別子をハンガリアン記法に変えろ。
var someMonth//キャメルケースに
function getTheMonth//動詞に
CURRENT_MONTH//定数は大文字に
var summerMonths//配列は複数形に
分からん→mylibraryDoSomethingFunctionNameとすれば良いそうだ。
練習 2-3
I'mをI/'mにエスケープする必要がある
練習 2-4
432.54の整数部分を取り出す→parseInt(432.54)
16進数にする→parseInt(432.54,16)
8進数にする→parseInt(432.54,8)
練習 2-5
if(someMonth==null){
document.write("someMonthはnullです")
}elseif(someMonth=undefined){
document.write("someMonthはundefinedです")
}
→nullとundefinedは見分けられないらしい。nullと比較すれば、undefinedの場合もtrueになる。
もっと簡単にJavaScript実行したいからいろいろ調べた
一番メジャーなのが、アドレス欄に「javascript:ほげほげ〜」とやる方法。ブックマークレットもこの方法。
Firefoxには、ツールメニューのところに「エラーコンソール」というものがある。Firefoxは毎日使ってるのに今日知った。code:の欄にjavascriptを直接入力し、evaluateボタンを押す。javascript:はいらない。
あと、FirebugというJavaScript書くのとかに便利な拡張があるから、それを入れた。Ctrl+Shift+Lで出てくるコード入力欄にJavaScriptを入力してEnterを押せばいい。Copyボタンを押すとブックマークレットとしてコピーされる。
今後は短いものはFirebugを使って書くことにする。エディタとブラウザ行き来してF5押すとか面倒くさいことしなくてよくなるし。すごく助かる。デバッガ?とかいう機能が便利と聞くが、それはもう少ししてから調べることとする。
割り算ってどうなってるんだろう
JavaScriptで、100/3は33.333333333333336になってる。100/3*3は100。端数を切り捨て?たり、また掛けたりいろいろやってるうちにちょっと数値がずれたりしないんだろうか。そうするとifで比較したりするときにちょっとでもずれるとfalseになったりして困る気がする。まあ、きっとその辺は考えられてて平気なんだろうけど。
[いつか調べる。]