0

これが投稿する正しい場所かどうかはわかりませんが、私が持っているHTML5ボイラープレートを見ると...

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
<script>window.jQuery || document.write('<script src="_includes/js/libs/jquery-1.6.2.min.js"><\/script>')</script>

2番目のスクリプトは、最初のスクリプトがダウンした場合のフォールバックであることを読みましたが、どうすればよいでしょうか。私はいつも思っていた|| OR演算子でしたが、私には、ページが読み込まれたときに古いjQuery libをページに書き込むと言っているように見えますか?

4

2 に答える 2

4

演算子の後半は||、左側が「falsey」の場合にのみ評価されます。これは「短絡評価」として知られています*

したがって、window.jQueryがの場合undefined、それはdocument.write()


* 、xの値に関係なく、左側のオペランドに指定されたtrue || x == true短絡||演算子は、結果を変更しないため、式の右側の評価をスキップします。true

逆にfalse && x == false

于 2012-05-21T14:19:42.853 に答える
1

javascriptは偽の言語であるため、jQueryが使用できない場合は、に相当するwindow.jQueryが返されます。undefinedfalse

したがって、ステートメントの2番目の部分が実行され、<script>jQueryのローカルバックアップバージョンを含むドキュメントにタグが書き込まれます。

于 2012-05-21T14:19:17.377 に答える