如果大家看jquery的sourcecode就知道一开始就有两对小括号,是什么意思呢! 真的是比较困惑, 这么神奇的代码,什么意思啊?
我们先看看jQuery一开始是怎么写的:
(function(){
// jquery 代码
})();
它是由什么组成呢? 有一个匿名函数(函数没有名字),此匿名函数被一对小括号包裹着,这对小括号右边还有一对小括号.
我们再看常用一般函数定义方式.
//函数定义
function func1(){
alert("hello,world");
}
//调用函数
func1();
那么这两句话目的很明显就是要弹出一个"helloworld"的对话框,那么我们可不可以合并成一句话, 也同样能达到这样的效果,当然是可以的.
(function (){
alert("hello,world"
); })();
函数名称func1都去掉了, 在函数外面加了一对小括号.这和jquery是一样的啊! 可以看出最后面一对小括号语义就是"调用此匿名函数",那么包裹在匿名函数外面的一对小括号可以去掉吗? 变成如下的样子
function (){
alert("hello,world");
}();
要回答这个问题,先看看javascript对表达式的评估.
dd= aa+ cc*bb javascript会先评估cc*bb,然后才会评估aa+,这是因为地球人都知道的事情,乘运算(*)符优先级高于加(+) 同样如果去掉这对小括号的话, 我们可以假想一下其表达式的评估过程, javascript会先评估最后面小括号,而不是先评估匿名函数了,那么最后面的小括号是什么语义呢! 仅当作一般运算符去处理,并不是"此处存在函数调用"的这样一个语义, 因为在这之前并不知道有匿名函数存在(还没有评估呢),所以在匿名函数外面加上一对小括号的话,javascript对其评估的顺序就变了, 所以答案很明显,不可以去掉匿名函数外面的一对小括号,否则其评估就会失败,导致语法错误.
看到这里是不是豁然开朗了,呵呵!
分享到:
相关推荐
2. 参数提示:在输入函数括号内的参数时,插件会显示每个参数的说明和示例,帮助你理解如何正确传递数据。 3. 快速信息:将光标放在jQuery函数或选择器上,按F1可以查看该函数的详细说明和用法示例。 4. 错误检查:...
客户端JQuery实现的随机抽奖程序,在列表中随机跳动若干次,确定选中人。 适合随机抽奖,公司年底抽奖等小娱乐~~~ 菜鸟使用说明: 请用浏览器打开文件"开始.html",即可运行。 1、如浏览器提示运行Active控件,...
尽管jQuery提供了一系列强大的功能,但其核心库的体积却非常小(压缩后不到30KB)。这意味着即使是在资源受限的环境中也可以轻松加载和使用jQuery。此外,jQuery与其他JavaScript库(如AngularJS、React等)的兼容性...
- **标题**:“jQuery基础教程(pdf)”表明这是一份关于jQuery基础知识的教学文档。 - **描述**:“个人搜寻,总结加排版做的pdf”说明这份文档是由作者根据个人经验整理而成,具有一定的实用价值。“适合初学者”,...
### Jquery核心函数详解 #### 一、简介 jQuery 是一款快速、小巧的 JavaScript 库,使得用户能够更轻松地...本文通过几个具体的示例详细介绍了该函数的使用方法及应用场景,希望对读者理解和掌握 jQuery 提供帮助。
描述中提到了"基于jquery-1.7.1.min.js制作",这意味着项目中使用的jQuery版本是1.7.1的最小化版本,这是一个优化过的文件,体积小但功能完整,有利于提高网页加载速度。 在实现弹出对话框功能时,开发者可能利用了...
下面详细说明这两种方法的知识点。 首先,.html()方法是用来获取或设置选中元素内部的HTML内容。它能够将HTML标签解析为页面上的相应元素。使用方式很简单,当它作为获取方法时,只需传递元素选择器,它就会返回该...
`使用帮助.txt`可能提供了关于如何在自己的项目中使用这段代码的详细说明,包括如何引入jQuery库,如何调整CSS样式,以及如何在HTML中放置合适的元素。 `谷普下载.url`和`说明.url`是链接文件,分别指向资源下载...
在本文中,我们将深入探讨Jquery操作js数组及对象的知识点,并通过实际的示例代码加以说明。首先,我们需要明确什么是Jquery以及它在操作数组和对象方面提供哪些方法。 Jquery是一个快速、小巧且功能丰富的...
这说明了JQuery的易用性和对初学者的友好性。作者还提到了使用博客园平台,尽管不熟悉使用,但通过分享和社区互助可以逐渐提高技术能力。 综上所述,JQuery在简化动画效果实现方面显示出了其巨大的优势,通过几个...
4. jQuery的each方法:在代码中,使用$.fn.each方法对当前jQuery对象集中的每个元素进行迭代,调用position函数并传递当前遍历到的元素。这确保了如果页面中有多个元素需要这个固定效果,所有的元素都会得到处理。 ...
在对基于Scrapy的模板化爬虫程序管理平台的需求规格说明书进行评审时,发现了一些问题和建议,主要涉及文档的一致性、清晰度和技术准确性。以下是对这些问题的详细讨论: 1. **图3.1的extend用例**:在解析页面部分...
HTML 标签用两个尖括号””括起来,一般是双标签,如和,前一个标签是起始标签,后一个标签为结束标签。HTML 元素指的是从开始标签到结束标签的所有代码。 在 HTML 标签中,有很多重要的标签,如标题、段落、图像、...
逆波兰表达式(Reverse Polish Notation,RPN)是一种数学表达式表示方法,它通过消除括号和运算符优先级的问题,使得计算过程更为简洁。在这种表示法中,操作数总是在运算符之前,使得计算器可以按照后缀表达式的...
3. **jQuery之家.url**:可能是一个链接到jQuery库的快捷方式,因为许多JavaScript库依赖于jQuery进行DOM操作。 4. **css**、**fonts**、**images**、**related**和**js**目录:分别存放CSS样式文件、自定义字体、...
- 在Properties文件中使用注释来解释特定键值对的用途。 **4. JSP标签定义注释** - 在JSP页面中使用注释来解释标签的作用。 #### 六、JSP页面约定 **1. \WEB-INF\jsp\common存放公共JSP页面** - 所有公共JSP页面都...
此外,主题可能还会对常见库和框架(如jQuery、React、Vue等)的语法高亮进行特别处理,使得这些代码片段在大量代码中脱颖而出。 版权和许可方面,根据描述中提到的信息,QuickLight主题的版权属于2014年的某个个人...
高级模式添加用于在GUID周围切换花括号并切换字符大小写的选项。 2. Web字体可脱机使用,这使该应用程序成为真正的脱机应用程序。 版本:1.0.0.3 1.用户界面改进版本:1.0.0.2 1.添加了“获取新”按钮2.添加了“关闭...
使用故事点,项目和进度条对Trello板进行超级充值 Trello主板的敏捷SCRUM通过启用SCRUM功能为您的Trello主板提供超强的功能: ★故事点:设置Trello卡的故事点 ★时间消耗:设定花费在任务上的时间。 ★标签:将卡片...