initializrの吐き出したソースから学んだこと
http://www.initializr.com/
テンプレート内の記述から学ぶ
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> //A <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script> //B
A) "//"の意味を理解
"/"はルートディレクトリ指定だが、"//"は使ったことありませんでした。
ローカルで確認したら"file://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"
を読もうとしていたのでおやっと思って調べたら、
ルートディレクトリのさらに上の階層を指定できる記述だったか。
ちなみにlocalhost上で試すと、
"//"は"http://"になった。そういうことか!
こうすればhttp://とhttps://どっちもいけるとか。
もしかして常識なのかもしれない。見たまんまだし。
B) jsの論理和を求める式、"左辺||右辺"のしくみ
論理和を求める式"左辺||右辺"は、
左辺が"true、または論理値として評価したときtrueになる値"なら、左辺の値をかえす。
左辺が"false、または論理値として評価したときfalseになる値"なら、右辺の値をかえす。
単純にどっちかがtrueならtrueをかえす…って覚えてたけど、jsでは、厳密にはこうらしい。
その性質を利用して、jqueryが読み込まれてなかった場合の代替記述をしているんだって。
http://www.ajaxtower.jp/js/ope/index13.html
論理積の項目も併せてみると分かりやすいね。
このようにJavaScriptの論理積は式全体の評価として論理値を返すわけではありません。
というところが重要だな。厳密には左辺か右辺のどちらかの値をかえしているんだ。
どこかでちらと見た気がして気になってたけど、ようやくちゃんと理解できた。