【疑問】JavaScriptの window.jQuery || document.write …という条件式の書き方


  • 公開:
  • 更新:
  • 編集:
概要 ▶ Says it all by alikins「jQueryをロードする際のナイス!と思った書き方 」が突然週明けからブレイクしてビビっております(汗)。その記事に書いたjQueryのフォールバック用のJavaScriptですが、以下の様に書かれています。window.jQuery || document.write('<script src="js/libs/jq
Says it all by alikins


jQueryをロードする際のナイス!と思った書き方 jQueryをロードする際のナイス!と思った書き方」が突然週明けからブレイクしてビビっております(汗)。


その記事に書いたjQueryのフォールバック用のJavaScriptですが、以下の様に書かれています。

window.jQuery ||  document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>

疑問というか質問なのですが、これってJavaScriptで一般的に使用される条件式の書き方なのでしょうか?


条件式を解説してあるページもあるのですが…

よくある書き方なのかわからないので調べてみると、同じ疑問を持っている人がYahoo!知恵袋にいて、回答を得ていますので回答を引用します。

if (A) B else C; は A && B || C と書き換えられます。上の例の場合は && B の部分がないので、次のようになります。

if (window.jQuery) /*何もしない*/; else document.write(...);

もっと書き換えれば、

if (! window.jQuery) document.write(...);

jQuery が存在しなければ script 要素を出力して jQuery を読み込む、というだけです。
こんなコードをみかけたのですが、条件式でしょうヵ?これは何ですか? window.jQ... - Yahoo!知恵袋

「A && B || C」で、trueの場合の実行式がなく、falseの場合の実行式だけ書かれているのが「window.jQuery || ●●●」なのですね。


JavaScriptに詳しい方がいれば、こういう書き方はよくあるのか、普通に使っても良いのか、といったことを教えていただければ嬉しいです。


それでは。


追記

そういや三項演算子も似たようなものなのか…?

追記2(2014年2月2日)

Firebugを使ってみて自分で考えてみました。
カテゴリー:

このページをぜひシェアしてください