Comment fonctionne HTML5 Boilerplate jQuery library failback?

Il s'agit d'une question de débutant pour html5 boilerplate, et javascript en général, mais je ne peux pas trouver la réponse n'importe où, alors voila …

<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> 

Comment la deuxième ligne de script vérifie si le CDN de google a été chargé ou non? Il n'y a pas de déclaration ou quelque chose à suggérer. Je suis désolé si cela semble stupide. De l'aide?

Le || Est la déclaration if dans ce cas. Si window.jQuery renvoie TRUE , tout après la déclaration or (||) ne sera pas chargé. Si c'est FALSE , il continuera à charger jquery.

Edit: Juste pour clarifier un peu. Si vous faites if (var1 && var2) en javascript, il évaluera les deux variables pour vérifier si elles sont à la fois vraies. Si vous le faites if (var1 || var2) , alors si la première variable évalue sur TRUE, il n'est pas nécessaire d'évaluer le reste de l'expression, car elle sera automatiquement valide dans les deux sens.

Dans ce cas, c'est exactement ce que fait votre code. Si window.jQuery est FALSE (ce qui signifie que jQuery n'a pas été chargé), continuez et évaluez l'expression suivante – qui, dans ce cas, charge le jquery à partir d'un fichier local. Il ne s'agit pas d'une déclaration IF, car ce n'est pas nécessaire.

Si le fichier jQuery de Google CDN ou n'importe où est chargé, il aurait été ajouté une propriété jQuery à l'objet window . La deuxième ligne de votre script vérifie si window.jQuery est définie ou non, sinon elle exécute l'autre partie de || Qui ajoute une étiquette de script ayant l'attribut local local src location location jQuery pour le charger.