何回目のチャレンジか、jqueryを読んでみた
何度となくチャレンジして挫折してきたjquery読書会(一人で)。
gihyo.jpを参考に読んでみました。
http://gihyo.jp/dev/feature/01/jquery/0001
で、いきなりひっかかったんですが、39行目のこの記述。
selector = selector || document;
何これ?変数定義の時に「||」って使えるの?
というわけで自分でシコシコ試してみました。
var test = markup || wonohe;
となっている際、testに代入する際まずmarkupをチェックして、undefinedだとwonoheを入れる、と
いう処理をしているのではないかと仮定して色々実験。
var wonohe; var markup; var test = markup || wonohe; alert(test); //undefined
この場合、当然wonoheもmarkupも値は定義されていないので、「undefined」となる。
var wonohe; var markup = 'markup'; var test = markup || wonohe; alert(test); //markup
markupに値が入っているのでtestにはmarkupが入る。
var wonohe = 'wonohe'; var markup = 'markup'; var test = markup || wonohe; alert(test); //markup
markupにもwonoheにも値が入っているが、markupが先にあるのでmarkupが入る。
var wonohe = 'wonohe'; var markup; var test = markup || wonohe; alert(test); //wonohe
wonoheにのみ値が入ってる。markupは無視されてwonoheがtestに代入される!
つまり、仮定どおり!1つ目の変数をチェックして、undefinedであれば2つ目の変数をチェック。
ということはjqueryに書いてる
selector = selector || document;
これは、selectorが定義されていなければdocumentオブジェクトを入れる、と。
なので、selectorが引数として渡されてなければ勝手にdocumentオブジェクトが
入るということですな。あー前途多難だ・・・がんばろう。
今日のお疲れ!BGM♪
22才の別れ/風