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开发的。 也就是对 jquery的依赖。没有引用jquery库就会报错。为了防止这样的事情发生。所以这样写。首先判断有没有window.jQuery,如果没有(也就是false)。就执行后面的document.write('<script src="js/vendor/jquery-1.10.2.min.js"></script>')。如果存在window.jQuery(也就是true) 就什么都不做。