;!function(){}()

1. $(function(){ }) 或 jQuery(function(){ })

   此函数也可以写成 jQuery(function(){ }), 用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。

 

2. (function(){})() 或  function(){ })(jQuery)

   此函数也可以写成   function(){ })(jQuery);其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象。用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以若要直接自动执行DOM操作的代码请小心使用。它相当于:

function wido($){} ;  wisdo(jQuery), 是初始化jquery对象的惯用方法.

3. (function($){...})() 或 (function($){...})(jQuery)

  实际上是匿名函数,它等效于匿名函数 function(arg){...} ,参数为 arg,是初始化jquery对象的惯用方法,有的时候会使页面跳动, 在调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即: (function(arg){...})(param),这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数,而(function($){...})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery,

例如:

(funtion(str){;相当于:funtion OutPutFun(str){;


=================================================================

 
  
  这是js里有名的IIFE(立即执行函数表达式),常用来创建一个匿名的命名空间,避免污染顶(上)层空间

分号和叹号是两种不同的情况…… 
分号的作用是在每行都不手打结尾的分号的情况下避开自动插入分号导致的解析错误 
叹号类似加号、减号、new操作符什么的,可以少写一个括号(用new操作符的话函数调用的那对括号都省了) 

这些手法都是依赖于js语法解析的细节。
// 你甚至可以在function前面加一元操作符号

!function () { } ();
~function () { } ();
-function () { } ();
+function () { } ();
 
  
(function () { }) ();
这几种等价? 没有区别吗?都是一个效果?


如果说没有确切返回值的话,你就当转为为表达式理解

也许真的要说效果,你可以通过以下的 

!function () { } (return true;);

 
  
返回false,也就是说不仅仅起到了转换表达式的作用,而且还把返回结果取反
但是如果说你想自执行一段代码,无需返回值来处理,那么其实都是一样的
 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完成CTime时间类和CDate日期类的设计,使得主程序能够正确运行。 时间类CTime包含私有成员数据时(hour)分(minute)秒(second),均为int类型。 CDate日期类由CTime时间类公有派生而来,包含私有成员数据年(year)月(month)日(day),均为int类型。 main函数已给定,提交时只需要提交main函数外的代码部分。 #include<iostream> using namespace std; //你提交的代码在这里 int main() { int dy,dm,dd,th,tm,ts; cin>>dy>>dm>>dd>>th>>tm>>ts; CTime t1; cout<<"[T1]"; t1.Show(); CDate d1; cout<<"[D1]"; d1.Show(); CDate d2(dy,dm,dd); cout<<"[D2]"; d2.Show(); CDate d3(dy,dm,dd,th,tm,ts); cout<<"[D3]"; d3.Show(); CDate d4(dy,dm,dd,t1); cout<<"[D4]"; d4.Show(); CDate d5(t1); cout<<"[D5]"; d5.Show(); return 0; } Input 1行,包含6个整数,分别代表年,月,日,时,分和秒。 Output 输出包含4行,具体输出格式参照样例。 Sample Input 1 1949 10 1 16 28 37 Sample Output 1 Function #1 is called! [T1]9:10:11 Function #3 is called! Function #1 is called! Function #4 is called! [D1]2023-4-5 9:10:11 Function #3 is called! Function #9 is called! Function #1 is called! Function #5 is called! [D2]1949-10-1 9:10:11 Function #3 is called! Function #9 is called! Function #2 is called! Function #6 is called! [D3]1949-10-1 16:28:37 Function #3 is called! Function #9 is called! Function #0 is called! Function #7 is called! [D4]1949-10-1 9:10:11 Function #3 is called! Function #9 is called! Function #0 is called! Function #8 is called! [D5]2000-12-31 9:10:11 Function #3 is called! Function #9 is called!
06-10

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值