这是 jQuery 相关的,这是啥意思? [复制]
Posted
技术标签:
【中文标题】这是 jQuery 相关的,这是啥意思? [复制]【英文标题】:Is this jQuery related, and what does this mean? [duplicate]这是 jQuery 相关的,这是什么意思? [复制] 【发布时间】:2013-06-22 17:50:47 【问题描述】:我一直在寻找,但没有任何线索……或者我没有找到正确的方法(如果重复,请见谅)
以下代码是否意味着:如果没有定义 jQuery,或者没有准备好文档?
!function ($)
///
!function ($)
$(function() // I know this is an alias to $(document).ready()
.....
(window.jQuery) // Ending of !function
我在问,因为我在这里看到它:http://twitter.github.io/bootstrap/assets/js/application.js 并且没有,我真的不知道它是什么意思。
【问题讨论】:
这是!
的用途:***.com/questions/3755606/…
哦,我明白了。很遗憾我以前找不到那个答案。我搜索!function ($)
没有结果
当您搜索 !
之类的字符时,Google 并不是很有帮助 :)
我尝试了不同的方式来逃避它,仍然没有成功......呵呵,谷歌
【参考方案1】:
在这种情况下,!
被使用,因为它是一个运算符,因此该行的其余部分将被视为表达式而不是语句。这是一种编写立即调用的函数表达式的方法。更常见的成语可以在这里找到:
javascript immediately invoked function patterns
【讨论】:
【参考方案2】:function()()
上的!
只是简单地翻转(或否定)在立即调用定义的函数后返回的值。请注意,在函数定义之后的最后一行,它显示(window.jQuery)
— 将 jQuery 作为参数传递给函数并立即调用它。
但在这种情况下,它似乎没有做任何重要的事情,因为无论如何都不会使用返回值。该函数仍然会被执行。
此外,它在文件顶部这样说:
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
// IT'S ALL JUST JUNK FOR OUR DOCS!
// ++++++++++++++++++++++++++++++++++++++++++
因此,这进一步证明了它并不是为了任何真正的目的。
【讨论】:
对不起,这不是我要求的。 @w0rldart:我意识到了。我现在实际上已经回答了这个问题 - 继续刷新。 感谢您考虑我的问题,并实际给了我一个答案:) 那么,就我而言,!function ($)
没有任何用处...因为我已经包含了 jQuery 并在 document.ready
上执行,对吧?
!
似乎没有目的,但这与document.ready
无关——这是关于确定$
变量的范围以防止jQuery 和其他库之间发生冲突使用$
。以上是关于这是 jQuery 相关的,这是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章