JS----------IIFE(Imdiately Invoked Function Expression 立即执行的函数表达式)
1、+function($){}(jQuery); 今天看到js代码里面有这个格式的代码,不知道啥意思,就去查了一下,我也是js小白。首先前面的+号,这个不是固定非要写+号,只要写一级运算符都可以。目的是为了引导解析器,指明运算符附近是一个表达式。
+function($){}就是一个函数表达式,(jQuery)就是调用这个函数表达式并且jQuery是参数。(传参,为了避免$与其他库或者模板申明冲突,jQuery 作为参数传递)。
(function($){})(jQuery) 这种写法跟上面的那种写法是一个意思,功能完全一样,只是写法不一样。第二种比较常见。
2、function hi(){
var a = 1;
return function(){ console.log(a++); };
};
var aaa = hi();
var bbb = hi;
aaa(); aaa(); bbb();
aaa 是将 hi() 的运行结果赋值给它,即 return 返回的匿名函数,此时有一个闭包,则每次调用 aaa 时都访问的同一个 a,aaa() 第一次运行结果为 1,第二次为2
而 bbb 将是将 hi 这个函数名赋值给它,则调用 bbb() 后返回一个函数表达式,即function(){console.log(a++)};
3、console.log('%O', new Date()); 打印对象