window.jQuery || document...什么意思,请求分析

oneplus
  • 787

这句话是什么意思, 也就是 window.jQuery 不懂。

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

评论
阅读 8.1k
4 个回答
✓ 已被采纳

建议题目修改为: window.jQuery || document...什么意思,请求分析

window是浏览器端的全部数据变量的引用。
比如 window.window === window

window.jQuery 就是浏览器中的全局变量里的jQuery
那为什么不写 jQuery 而是写 window.jQuery呢?
你可以试试,直接jQuery然后回车,会报一个错误。而window.jQuery只是返回undefined而已。

接下来是||运算符,这是“或”运算
比如 c = a || b
当且仅当 a和b同时为“假值”时,c才为false。
那么当a时“真值”时,js引擎会偷懒,不运算b的值,反正c都是true嘛。

那么window.jQuery || document....
的结果就是,如果window.jQuery为“假值”,才会运行document...。
如果window.jQuery是“真值”,不运行后面的语句。
而undefined是一个假值。
总而言之,这句话的效果是window.jQuery如果没有赋值或者是假值,调用后面那句话。
而后面那句话是用来加载一个本地的jquery脚本的。
正常引入了jquery的话,会有一个全局变量jQuery,也就是window.jQuery是真值。

如果你已经加载了jquery文件,那么window.jQuery就是一个合法对象
如果没有加载,那么就是undefined, 逻辑上就是假
假的话就会执行|| 右边的语句

所以整句的含义是:
如果没有加载jquery,那么就加载!(往HTML DOM里面写入script来加载jquery.xx.js)

作用就是保证jquery加载,且只加载一次

PS: 如果你问的是jQuery是什么的话……建议直接百度或谷歌,这里简单说说,jQuery是一个javascript库,实现了很多有用的功能。网上还有很多依赖jQuery的插件,很好用的

如果没有加载jquery,则加载jquery。

jQuery加载后,会在window对象上创建jQuery属性。所以根据window.jQuery来判断是否加载过jQuery

用的是短路求值。A || B(A或B)中,如果A的值为真,则不对B求值,结果直接为真。如果A的值为假,则对B求值,B的真假值为此表达式的真假值。

window.jQuery为真,则不执行||后面的语句,如果window.jQuery为假。则在文档中插入script标签的方式载入jquery库(js/vendor/jquery-1.10.2.min.js)。

题主可以简单的理解为 : 这段代码的意思 因为这个网站是用jquery开发的。 也就是对 jquery的依赖。
没有引用jquery库就会报错。为了防止这样的事情发生。所以这样写。首先判断有没有window.jQuery,如果没有(也就是false)。就执行后面的document.write('<script src="js/vendor/jquery-1.10.2.min.js"></script>')。如果存在window.jQuery(也就是true) 就什么都不做。

宣传栏