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論理積は式全体の評価として論理値を返すわけではありません。

というところが重要だな。厳密には左辺か右辺のどちらかの値をかえしているんだ。

どこかでちらと見た気がして気になってたけど、ようやくちゃんと理解できた。

分かりやすい解説。
http://dtp.jdash.info/archives/51941752.html