js碎片知识

js匿名函数

()()表示匿名函数自执行。

(function(window,document,undefined) {  
    //do something  
    console.log("我是匿名函数,会自己执行奥!");  
})(window,document); 

使用该匿名自执行函数的作用:

1.首先避免函数体内外变量的冲突(js执行表达式顺序为圆括号里到圆括号外);

2.第二个圆括号中的window为实参,接收window对象(全局),而function括号内的window为局部变量。这样写可以提高js性能,减少作用域链查询时间.(如果在函数体内多次使用到window对象,那么把window对象当实参穿进去,是十分必要的;如果函数内部不需要,那么就无需传递该参数.);

3.function后面的形参undefined。在一些老的浏览器中,undefined不被支持,直接使用会导致错误,所以考虑兼容性,就增加一个形参undefined;

4.(function() {})()主要用于存放开发插件的代码,执行其中的代码时DOM不一定存在,所以直接自动执行DOM操作的代码,请放心使用。

立即调用自身
(function(i){

},500)(i)
//此处的i表示立即调用函数
函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!
function f1(){
 n=999;
}
f1();
alert(n); //此时n就是全局变量,在函数外可以访问得到。 999
闭包:在一个函数内部的函数/能够读取其他函数内部的变量的函数/将函数内部和函数外部链接起来的一座桥梁
function f1(){
    var n=999;
    function f2(){//子函数可以向上读取到父元素的变量,反之不行。
    //假如我们需要得到函数内的局部变量,正常操作是:在函数的内部再定义一个函数,该函数称之为闭包。
    //通过闭包来---读取局部变量;让局部变量的值始终保存在内存中。
      alert(n); // 999
    }
}

笔记来源于网上学习的整理,如有失误麻烦大佬萌补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值