1

これは、html5 ボイラープレート、および一般的な JavaScript に対する初心者の質問ですが、どこにも答えが見つからないようです。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>

2 番目のスクリプト行は、Google の CDN が読み込まれているかどうかをどのようにチェックしますか? if ステートメントやそれを示唆するものはありません。これが愚かに聞こえる場合は申し訳ありません。何か助けはありますか?

4

2 に答える 2

3

この||場合の if 文です。window.jQueryが返された場合、ステートメント (||)TRUEの後のものはor読み込まれません。の場合FALSEは、引き続き jquery をロードします。

編集:少し明確にするために。JavaScriptで行う場合if (var1 && var2)、両方の変数を評価して、両方がtrueであるかどうかを確認します。にするとif (var1 || var2)、最初の変数が TRUE と評価された場合、式の残りの部分を評価する必要はありません。どちらの方法でも自動的に true になるからです。

この場合、それはまさにあなたのコードが行っていることです。が FALSE の場合window.jQuery(jQuery がロードされていないことを意味します)、続行して次の式を評価します。この場合、ローカル ファイルから jquery をロードします。必要がないため、IFステートメントでラップされていません。

于 2013-08-11T15:06:35.240 に答える
2

Google CDN またはどこからでも jQuery ファイルが読み込まれると、オブジェクトにプロパティが追加さjQuerywindowます。スクリプトの 2 行目は、定義されているかどうかをチェックします。定義されていない場合は、ローカルの jQuery ファイルの場所 src 属性を持つスクリプト タグを追加してロードするステートメントwindow.jQueryの他の部分を実行します。||

于 2013-08-11T15:07:58.337 に答える